일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Redux
- React
- phpredis
- Go
- deep learning
- javascript
- fastapi
- CentOS
- nodejs
- For
- Babel
- webpack
- docker
- AWS
- rabbitmq
- laravel
- SQL
- NCP
- python
- Backbone.js
- linux
- Switch
- nginx
- 기초 수학
- 블레이드 템플릿
- php
- mariadb
- Machine Learning
- Node
- Redis
- Today
- Total
목록AI (33)
개발일기
데이터를 모델에 주입하기 전에 데이터를 가공하는 데이터 전처리 단계를 거쳐야 한다. 전처리를 통해 입력 데이터를 효율적으로 처리할 수 있게 할 수 있다. 데이터 전처리가 이뤄지지 않으면 학습 성능이 저하되거나 학습 도중에 문제가 발생할 수 있다. tensorflow에서는 map, shuffle, batch, cache, prefetch와 같은 데이터 전처리에 필요한 함수를 제공한다. 또한 연산이 효율적으로 처리될 수 있게 최적화 기능을 지원한다. 1. 전처리 함수map(): 데이터셋의 각 요소에 사용자 정의 함수를 적용하는데 사용된다. 예를 들어 입력 데이터를 정규화하는 사용자 함수를 정의하여 map() 메서드에서 사용할 수 있다.num_parallel_calls: 이 옵션에 AUTOTUNE을 적용하여 ..
모델의 과대적합을 방지하기 위해 사용하는 기법이다. 모델의 층이 넓고 깊어지면 훈련용 데이터를 과도하게 적합하여 학습하는 경향이 있다. 이를 바탕으로 학습된 모델은 훈련할 때 만나지 못한 새로운 데이터를 만났을 때 낮은 예측력을 보이게 된다. 이를 바탕으로 훈련 데이터에 너무 익숙하지 않도록 몇몇 노드는 학습에서 제외시키는게 드롭아웃이다. 지정한 확률을 바탕으로 일부 노드의 연결을 끊어 모델이 학습하는 가중치 파라미터의 개수를 줄어들게 하여 과대적합을 방지한다. 이를 토대로 훈련 과정에서는 몇몇 노드만 학습시키지만 검증 시점에서는 모든 노드를 활용하여 검증을 진행한다. 드롭아웃을 적용하지 않은 뉴런은 왼쪽과 같이 모든 노드가 연결되어 있다. 하지만 드롭 아웃을 적용하면 몇몇 노드의 연결이 끊어져 연결되어..
이전 게시글을 통해 정규화시킨 mnist데이터셋 코드를 활용하여 간단한 합성곱 신경망 모델을 이미지를 분류할 수 있다.1. 모델 생성model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation = 'relu', input_shape=(28, 28, 1), name='conv'), # convolution 적용, 32개의 필터 3 x 3 형태 tf.keras.layers.MaxPooling2D((2, 2), name='pool'), # MaxPooling 적용 tf.keras.layers.Flatten(), # 1차원으로 변환 tf.keras.layers.Dense(10, activation='softmax')..
합성곱 신경망(Convolution Neural Network)합성곱 신경망은 데이터가 가진 특징들의 패턴을 학습하는 알고리즘으로 이미지나 영상 데이터를 처리하는데 주로 사용된다. 이를 사용하는 예시로는 이미지 분류(Image Classification)과 객체 탐지(Object Detection) 등이 있다. 이미지 분류는 이미지의 특징을 추출하여 고양이와 강아지 사진 중에서 어떤 사진이 고양이인지 강아지인지 분류해낸다 . 객체 탐지는 이미지에서 특정한 객체를 인식하고 위치를 파악하여 경계 박스로 객체를 탐지해낸다. 이미지 구성# Tensorflow import tensorflow as tfmnist = tf.keras.datasets.mnist # mnist 이미지 데이터 가져오기(x_train, y..
합성곱(Convolution) 연산합성곱 연산은 두 개의 함수 또는 신호를 결합하여 새로운 결과는 만드는 연산이다. CNN에서는 입력 데이터(이미지, 신호 등)와 필터를 사용하여 중요한 특징을 추출하거나 데이터를 변환시킨다. 필터를 입력 데이터 위에서 슬라이딩하여 데이터를 하나씩 곱하고 더하여 특징을 추출한다.$ f(x) $: 입력 신호로 처리하려는 데이터다.(이미지, 숫자 데이터 등)$ g(x) $: 입력 데이터를 분석하거나 변형하는 필터이다.슬라이딩: $ g(x) $를 $ f(x) $ 위에서 왼쪽에서 오른쪽 방향으로 조금씩 이동한다. 이동하면서 겹치는 부분이 있으면 겹치는 부분의 값을 곱하고 더한다. 마지막 부분에 도달할 때까지 반복한다. 간단한 수학 예제로 살펴보면 더 쉽게 이해할 수 있다.입력 신..
Sigmoid 함수sigmoid 함수는 입력값을 0과 1사이의 값으로 변환하는 비선형 함수로 주로 이진 분류 문제에서 확률을 계산하여 참, 거짓을 판단하기 위해 사용된다. 출력값의 범위가 0과 1사이에 있으며 0%~100%와 같이 확률적인 의미로 표현될 수 있다. 만약 함수의 출력값이 0.9라면 해당 입력이 참(1에 수렴하는)에 속할 확률이 90%인 것을 의미한다. 이와 반대로 출력값이 0.2라면 거짓(0에 수렴하는)에 속할 확률이 80%라는 것을 의미한다. 또한 sigmoid 함수는 비선형 함수이기 때문에 0과 1 주변에서는 기울기가 완만한 S자 모양의 그래프를 가진다.수학 수식으로는 $ \sigma(x) = \frac{1}{1 + e^{-x}} $로 표현한다.$ sigma(x) $: $ \sigma ..
Sklearn에서 제공하는 캘리포니아 집값 예측 데이터셋을 선형 회귀 모델로 학습시키면 각 특성과 주택 가격 간의 연관성을 파악할 수 있다. 선형 회귀 모델은 훈련 데이터에 대한 손실 함수를 최소화하여 가중치와 절편을 찾는 과정을 통해 학습한다. 주로 사용하는 손실 함수는 평균 제곱 오차(MSE)이며 훈련 데이터에 존재하는 특성에 대한 가중치를 구해 집값에 영향을 미치는 정도를 확인할 수 있다. 데이터셋 확인# Pytorch California Housingfrom sklearn.datasets import fetch_california_housing# Load the California housing datasethousing = fetch_california_housing(as_frame=True)#..
이상치 제거란?이상치 제거란 데이터셋의 데이터를 분석하는 과정에서 데이터셋 내에 존재하는 이상치(Outliers)를 제거하는 과정을 의미한다. 여기서 이상치란 데이터셋의 데이터가 일정 패턴으로 분포되어 있을 때, 이 분포에 속해있지 않고 왼쪽, 오른쪽 한쪽으로 극단적으로 치우쳐 있는 데이터를 의미한다. 이상치로 인해 데이터의 평균과 분산에 큰 영향을 끼치며 분석 결과가 왜곡된 형태로 나타날 수 있다. 데이터가 왜곡되면 모델의 예측 성능이 저하되며 비정상적인 통계 결과가 나오게 된다. Histogram히스토그램을 통해 이상치가 존재하는지 파악한 후, Boxplot을 통해 이상치의 규모를 시각화 한 후, 이상치 제거를 진행한다. 먼저 California Housing 데이터셋을 예제로 활용하여 각 특성을 히..