- 딥러닝이란 뭘까?
가) 머신러닝이 학습을 할때 사용하는 데이터를 살펴보자!
나) 딥러닝이 학습을 할때 사용하는 데이터를 살펴보자!
유방암 데이터(ndarray), 폐암 데이터(ndarray)
보스턴 집값(CSV파일), 개고양이 분류(img), 네이버 감성분석(텍스트 데이터), 로이터 뉴스(텍스트 데이터), 패션데이터(img), 아기울음소리/섬집아기/자장가(음성데이터)
딥러닝의 구조
- 딥러닝은 어떤 요소들로 구성이 되어 있을까?
-> 딥러닝 모델은 사람의 신경망을 모방해서 만들었다
1) 뉴런 : 신경계를 구성하는 세포, 전기 신호를 전달
-> 생각/반응/행동
사람의 뉴런은 신경세포, 인공신경망에서 뉴런은 선형회귀(y=wx+b)
2) 퍼셉트론 : 기존 뉴런은 모든 신호를 다음 뉴런으로 전달해주는 구조 사람의 신경망은 역치라는 문턱 값을 가지고 있음.
신호 강도 > 역치(문턱값) : 다음 뉴런으로 신호 전달
신호 강도 < 역치(문턱값) : 신호 전달 X
인공신경망도 사람의 신경망과 최대한 유사하게 역치를 구현
역치를 구현하기 위해 뉴런에 활성화 함수를 연결시켜 역치 구현 뉴런 + 활성화 함수 = 퍼셈트론
3) 다중 퍼셉트론 :
기존 퍼셉트론
-> 인간의 신경망을 모방 -> 문제 해결능력 뛰어남
-> 논리게이트 XOR문제 해결 x
-> 인공지능의 첫번째 겨울(연구 동결)
-> 문제 해결을 위해 퍼셉트론(하나의 직선)을 여러 층으로 쌓아서 다층 퍼셉트론으로 구성(연산을 여러번 하도록)
2-1) 이진 분류
- 출력층 뉴런의 갯수 : 1개
- 손실함수 (loss) : Binary_crossentropy
- 출력층 활성화 함수 : Sigmoid
- Sigmoid : 0~1 사이의 확률 정보를 예측해서 예측값이 0.5보다 크거나 같으면 1로 예측, 작으면 0으로 예측
2-2) 다중 분류
- 출력층 뉴런의 갯수 : 원핫 인코딩한 정답 데이터의 컬럼 갯수
- 손실함수 (loss) : categorical_crossentropy
- 출력층 활성화 함수 : Softmax
- Softmax : 다중 분류에서 각 퍼셉트론의 예측 확률합을 1로 설정
기존 Sigmoid 함수 -> 이진 분류에 특화가 되어 있다.(0/1)
실제 정답의 범위(0~1)와 예측 확률이 같아야 비교가 가능하다.
시그모이드 함수의 다중분류에서 오차 파악이 제대로 되지 않는다.
다중 분류에서 오차파악 / 예측확률을 정확하게 알아보기 위해 Softmax 사용
신경망이 학습되는 원리는 무엇일까?
역으로 가중치를 수정하면서 신경망의 성능 개선
순전파 : 입력 데이터를 입력층에서부터 출력층까지 정 방향으로 이동시키면서 출력 값을 예측해나가는 과정(예측)
역전파 : 출력층에서 예측값이 예측됨과 동시에 에러값(오차) 발생. 에러 값을 중간층을 통해 입력층 쪽으로 전파시키면서 가중치를 업데이트 하는 과정 - 경사 하강법을 이용해서 오차 값을 낮춰준다.(학습)
오차 역전파에서 문제점 발생
-> 컴퓨터가 기울기를 인식하기 못하는 문제가 생겼다!
-> 컴퓨터가 학습하는 방법 : 순간적인 기울기를 구해서 기울기가 0이 되는 지점의 가중치를 찾아가는 방법으로 학습
-> 기울기를 감지하지 못한다면? : 학습을 진행하지 못하는 문제가 발생(성능개선 X)
기울기 소실문제를 해결하기 위해 Sigmoid 함수의 대체 함수를 찾아보자.
1) 경사하강법
2) 확률적 경사하강법
3) 미니배치 확률적 경사하강법
4) Momentrm(모멘텀)
5) 네스테로프 모멘텀(NAG) -> 스탭 방향
6) Adagrad(아다그라드) -> 스탭 사이즈
7) RMSProp -> 스탭 사이즈
8) Adam
왜? 합성 곱 신경망을 도입하게 되었을까?
MLP의 픽셀 위치에 민감하게 동작하는 부분을 개선 시켜서 이미지에서 특징을 추출해서 비교(CNN 작동 방식)
CNN의 구조
특징 추출부(Feature Extractor) + 분류기(Classifier)
특징 추출부 = Conv Layer + Pooling Layer
어떻게 특징을 추출할까?
패딩(Padding)
축소 샘플링
전이학습
다른 데이터 셋으로 이미 학습한 모델을 이용해서 유사한 다른 데이터를 인식하는데 사용하는 기법
잘 학습된 사람의 지식을 그대로 받아와서 문제 해결을 하는 방식
특성 추출 방식
미세 조정 방식
(Recurrent Neural Network, 순간 신경망)
메모리셀 : 시간 t, 메모리셀 c
-> 과거에 연산된 데이터부터 현재 시각 t까지 연산된 대부분의 정보 -> c에 저장
-> 별도로 저장 : 오차 역전파를 진행할때 c 메모리 셀은 활성화 함수를 통과하지 않음.
미분 했을때 값이 줄어드는 영향을 받지 않는다. -> 기울기 소실 일어나지 않는다.
-> 데이터를 LSTM 계층 내에서만 주고 받고 다른 층으로는 전달하지 않는다.
기울기 소실 문제와 과거 데이터를 잊어버리는 문제를 해결하기 위해 LSTM이 대안으로 등장
컴퓨터가 효율적으로 자연어 처리를 하기 위한 방법론
자연어 : 무한대의 가짓수가 나온다 -> 어순/단어조합/맞춤법/유사어
-> 무한대의 조합식이 나오는 자연어를 컴퓨터가 잘 이해할 수 있도록 단순화 토큰화나 인코딩이 아닌 컴퓨터가 쉽게 이해할 수 있도록 변환 시켜주는 것
-> 임베딩은 희소표현(원핫 인코딩) -> 밀집표현(실수형태)로 변환 시켜주는 것을 의미
-> 워드 임베딩은 한 단어의 의미를 풍부하게 만들어주는 역활을 한다.
-> 밀집 표현을 사용했을때 단어들의 유사도(cosine 유사도)까지 판단해서 예측에 반영 가능