인공지능(6)
-
인공지능 - RNN(Recurrent Neural Network)
이전의 MNIST데이터를 활용한 실습을 진행할 때는 CNN 모델을 사용하여서 실습을 진행했었다. 그리고 이번 포스트 에서는 순환신경망(RNN, Recurrent Neural Network)에 대해서 다루어 보겠다. CNN 모델은 단일 이미지에서의 객체의 인식에 적합한 모델이다. 그러나 RNN의 경우는 시간적인 순서를 가지는 데이터(자연어, 동영상, 음악 등)를 학습하기에 적합한 모델이다. 그래서 시간 순서를 기반으로 데이터들의 상관관계를 파악하고, 이것을 기반으로 과거, 현재의 데이터를 통해 미래에 발생될 값을 예측할 수 있게 된다. 즉, 이전의 정보가 현재 입력에 대한 결과를 유추할 때 사용되어서 더 나은 결과를 예측하는 것을 돕게 된다. RNN활용의 예로는 구글에서 만든 구글번역기 등이 있다. 조금 ..
2022.12.05 -
인공지능 - 과적합, 과소적합
과적합(Overfitting) 분류 모델이 훈련 데이터의 각 샘플만을 과하게 학습해서 테스트 데이터에서 오차가 커지는 현상이다. 과적합이 발생 되면, 테스트 데이터에 대해서 정확도가 100%에 가깝게 수렴하지만 새로운 데이터에 대해서는 분류 성능이 현저히 떨어진다. 과적합을 해결하는 방법 검증 데이터 비율을 두어서 검증 데이터의 정확성이 떨어지기 전 학습을 조기에 종료한다. (Dropout, Batch Normalization 등의 방법을 모델에 추가하여 과적합의 위험을 줄일 수도 있다.) 과소적합(Underfitting) 훈련 데이터에 대해 학습이 부족하여 훈련, 테스트 데이터 모두에서 오차가 크게 나오는 현상이다. 과소 적합을 해결하는 방법 충분히 일반화 시킬 수 있을 정도로 학습을 진행한다.
2022.11.30 -
인공지능 - 정규화 방법(Batch Normalization)
Batch Normalization 이전 층의 출력값들을 정규 분포로 정규화하는 작업을 Batch Normalization 라고 한다. 정규화 한 값들을 현재 층에서는 가중치를 결합하여 입력값으로 학습을 진행한다. 평균 0, 분산 1 이 되도록 정규화를 진행한다. 정규화를 진행하면 -1~1 사이의 값이 결과로 나온다. 정규화된 결과는 크기변화와 shift연산을 하여서 값이 학습이 된다. 특징 1. 각 은닉층에서 정규화를 진행하면 입력값의 분포가 일정하게 되기 때문에 학습률에 영향을 크게 받지 않는다. 2. 학습률 설정에 비교적 자유롭기 때문에 학습률을 높게 설정할 수 있고, 학습속도를 개선할 수 있다. 3. 학습을 할 때마다 입력값을 정규화하기 때문에 가중치 초깃값에 대해서 의존성이 줄어든다. 4. 과적..
2022.11.29 -
인공지능 - 정규화 방법(Dropout)
Dropout 드랍아웃은 다중 퍼셉트론 등의 모델에서 학습을 진행할 때 일부 노드만을 사용하여서 학습을 진행하는 방법이다. 일부 특징이 특정 뉴런에 고정되는 것을 막아서 과적합에 강하다는 장점이 있다. 그러나 일부 뉴런을 학습시키지 않기 때문에 신경망에 충분히 학습되기까지는 시간이 조금 더 걸린다는 단점이 있다. 사용법 : 드랍아웃 레이어를 아래의 코드와 같이 추가하면 된다. model.add(tf.keras.layers.Dropout(0.3)) 그러면 전체 노드 중 70%의 노드만을 사용하여 학습을 진행하게된다.
2022.11.29 -
인공지능 - 컨볼루션 신경망을 이용한 MNIST 분류 실습
컨볼루션 신경망(CNN, Convolutional Neural Network)은 딥러닝 알고리즘 중 하나이다. 인간의 시각 시스템의 수용체 구조와 유사하게 지역 정보를 활용하여 특징을 찾아내서 전체 정보를 인식한다는 특성을 가진다. 컨볼루션은 영상처리에서 나온 용어로 미리 정의된 필터를 영상에 적용하여 적절한 특징을 뽑아내는 과정이다. CNN에서의 컨볼루션도 동일한 의미를 가진다. 컨볼루션이 적용된 결과를 특징맵(feature map)이라고 한다. CNN은 컨볼루션 레이어와 Max Pooling 레이어를 반복적으로 적용하여 특징을 추출한다. 이번 포스트에서는 Mnist 이미지 데이터를 불러와서 CNN모델에 학습을 시키고 테스트를 진행하여 결과를 출력해보는 실습을 진행해보았다. 모델 구성 정보 활성화 함수..
2022.11.29 -
인공지능 - 활성화 함수
- 항등함수(identity function) : 입력값과 동일한 값을 출력 - 계단함수(step function) - 부호함수(sign function) - 시그모이드 함수(sigmoid function) : 계단함수나 부호함수와 다르게 미분이 가능, 0 ~ 1사이로 출력값이 서서히 매끄럽게 변화한다는 특성을 가짐 - 하이퍼탄젠트 함수(Hyper tangent function) : 미분 가능, 1 ~ -1 사이로 출력 값이 변화함 - 램프 함수(ramp function, ReLU, Rectified Linear function) : 단순하고, 계산량이 적으며, 시그모이드나 하이퍼탄젠트 함수보 다 학습이 빠르다는 장점으로 인해 연산량을 많이 필요한 딥러닝 네트워크에서 주로 사용
2022.11.15