인공지능( 컴퓨터로 문제해결, 1950년~)
ㄴ 머신러닝( 예측통계 문제해결, = 지도 학습 + 비지도 학습)
ㄴ 딥러닝( '**신경망'**을 통한 문제해결)
예측 통계 문제(회귀/분류/클러스터링)
데이터사이언스( 통계 알고리즘, 상관 관계, 100년 역사)으로 해결 → 머신러닝으로 해결 → 딥러닝으로 해결
*단, 사실상 딥러닝= 머신러닝 화되고 있다.
딥러닝
신경망을 활용해 추측 통계 문제( 예측, 분류, 클러스터링)를 풀기위한 기술
지도 학습
정답이 있는 데이터를 기반으로 학습 → 테스트
비지도 학습
정답이 없는 데이터를 기반으로 바로 테스트, 성공 시 → 보상
신경망이란
#소자(element)
#순수신경망
(1) 뉴런(사람 뇌의 신경세포)과 같은 역할 수행
https://medium.com/nerd-for-tech/flux-prediction-using-single-layer-perceptron-and-multilayer-perceptron-cf82c1341c33
(2) 한계 : XOR 해결 불가( 1차 암흑기~ )
(0) 신경망의 실질적인 시작점 = MLP ← 주류(공통 부분)
(1) XOR문제 해결(1차 암흑기 극복 : 58~86년**)**
퍼셉트론을 '여러 단'( 레이어로)으로 쌓은 → 신경망
레이어 구성 = Input Layer — Hidden Layer — Output Layer
(2) MLP 조건
은닉 계층이 최소 1개 이상
Fully connected(완전연결)
같은 레이어끼리는 연결x , 다른 레이어끼리 노드들은 모두 연결
(3) 퍼셉트론을 여러단 쌓아서 만든 레이어 구조
http://hleecaster.com/ml-perceptron-concept/
(4) 실습 by.다이어그램
Tensorflow - Neural Network Playground
(히든 레이어만 노출)
(5) 학습
가중치를 바꿔가면서 패턴을 만들어가면서 학습한다.
신경망(딥러닝)에서의 학습 = 전파 +역전파를 묶어서 '학습'이라 한다.
전파 1회 + 역전파 1회 → epoch
(순)전파 Forward Propagation
= 입력이 들어와서( 가중치 *변화율..) → 최종 출력 값을 계산하는 일련의 과정
= 편미분(최종 결과값에 입력값의 기여도 계산) 구하기 ← *퍼셉트론
역전파 Back propagation ← 핵심 개념
= 전파의 최종 출력값이 원하는 값이 아닌 경우 그 오차 값을 줄이기 위한 과정
Fully connected에 의한 단계(레이어)별 편미분(가중치 또는 기울기)을 역순으로 올라가며 구하기 ← *MLP
목표치가 달성되면 학습 종료
전파를 통해 도출한 목표치에 가까워질때까지 역전파로 예측값 계산
목표치와 예측값이 가까워질때까지 가중치를 변경해가면서 학습(전파 1회 + 역전파 1회 → epoch)
학습 중에는 가중치가 변경 → 종료되면 가중치 고정
MLP가 이 학습(전파, 역전파)을 한다.
퍼셉트론 하나만으로는 수행할 수 없다.
한계점
2차 겨울
활성화 함수
지수함수로 인위적으로 만든 함수
오랫동안 신경망에서 많이 사용되던 활성화 함수(회귀, 분류에 효과적)
과거에는 직선으로 분류를 많이 했었다. 하지만 상관 관계로 해결할 수 없는 극단 케이스 발생에 대응(담배와 폐암, 사약과 사망)할 수 있다.
확률이 0도 아니고 100도 아닌 커브가 나온다.
→ 그래서 관습적으로 퍼셉트론의 활성화 함수에도 활용하기 시작했다.
→ deep했을때 한계 발생.
MLP가 딥(히든 레이어가 2개 이상- sigmoid)deep해지면 계산이 안된다.
= 사라지는 미분계수 Vanishing Gradient
→ 임시 대응 01(20년 전)
**RBM(**제한된 볼츠만 머신 계수)
입력 레이어, 히든 레이어가 한개씩만 있고 출력 레이어는 없는 신경망
→ DBN = RBM을 여러 층으로 만든 구조
but 완전 쓸모없는 것은 아님. 아직까지도 특정 구간에서는 시그모이드가 좋은 성능을 보이고 있음
극복 !!! -
히든 레이어가 깊어져도 학습 가능
2006년 힌튼 교수 연구팀 (20년 소요, 2006년에 해결)
MaxOut 특성 이용 → 역전파 시 계산(편미분) 난이도 대폭 개선
tanh, leaky Relu, ELU, PRelu, swish( 구글, 시그모이드에 x를 곱해 ReLU보다 좋은 결과 도출) ****...
but 두번째 과제 : MLP구조상 역전파 계산량 자체는 줄지 않음
- 극복 2 !! -
(게임용)특수 장비를 일반적인 계산에 활용하기 시작
OpenCL(표준) vs. NVIDIA CUDA
→ 병렬처리 기술의 발전으로 많은 계산을 동시에 처리 가능해짐
**텐서플로우( 파이토치)**는 기본적으로 CUDA에 최적화된 기술
(6) 이를( 딥러닝, 신경망, 인공지능) 통해 궁극적으로 풀려고 하는 문제( 현재로서 끝판왕)
= 회귀(예측) , 분류
#응용신경망
처리해야하는 데이터 양이 많은 경우
앞단에 영상처리 레이어추가, 위에는 MLP
영상/이미지 특화
순환 신경망
출력을 다시 입력으로 넣어 여러번 반복할 수 있도록 하는 알고리즘
한계 : timestep 마다 업데이트하는 과정이 곱셈에 기반했기 때문에 gradient vanishing 문제 생김
→ LSTM, GRU 소자 활용(덧셈 기반으로 grad 잘 전달함, 순차적인 시퀀스 (sequence) 데이터를 처리하는데 우수한 성능)
자연어, 음성처리 특화
인터렉션(인터페이스) : NLP, NLU, NLG
NLP 모델의 진화?과정
(Vec2Vec → Seq2Seq) → BERT → XLNet→ RoBERTa → MT-DNN→ T5 → Big Bird
활용되는 기술 : AI ⊃ ML ⊃ NN ⊃ DL(CNN, RNN, DNN ..)