-
220504교육/서울 ICT AI서비스 기획과정 2022. 5. 23. 00:57728x90
쉽게 설명하는 딥러닝
컴포넌트
여러 컴포넌트가 모여서
여러 층을 쌓으면
=>딥뉴럴넷(DNN)
딥뉴럴넷의 문제점 3가지 : underfitting/slow/overfitting
1. underfitting의 해결법 : Back propagation
현재 틀린 정도를 미분(기울기)한 것을 곱하고 더하고를 역방향으로 반복하며 업데이트
->작은 변화의 관점에서 선형적인 관계이기에 출력에서 생긴 오차를 입력측으로 전파하면서 가중치와 바이어스값 조정
이 때 출력 부분부터 입력 부분까지 역방향으로 cost function에 대한 편미분을 구하고 편기분값을 이용하여 값을 얻음
->activation함수로 sigmoid를 쓰면 vanishing gradient 현상 발생!
vanishing gradient란 레이어가 깊을수록 업데이트가 잘 안돼서 underfitting현상 발생
->activation함수로 ReLU를 사용 양의 구간에서 전부 미분값이 존재
->vanishing gradient문제 해결!
2. slow의 해결법 : Stochastic Gradient Decent
기존 뉴럴넷이 사용한 가중치 파라미터를 최적화하는 방법은 gradient decent
gradient decent란 loss function의 현 가중치에서 기울기를 구해 loss를 줄이는 방향으로 업데이트하는것
뉴럴넷은 loss(cost) function을 가지고 있음 쉽게 얘기하면 틀린정도, 현재 가진 가중치 세팅에서 내가 가진 데이터를 넣으면 전체 에러가 계산되고 미분하면 에러를 줄이는 방향을 알 수 있음 이 방향으로 정해진 learning rate를 곱해서 가중치 이동
가중치 업데이트=decent(에러 낮추는 방향)*learning rate*gradient(현 지점의 기울기)
->하지만 느림 그래서 stochastic gradient decent라는 게 나옴
gradient decent는 학습데이터를 full-batch하여 계산했지만 stochastic gradient decent는 mini-batch를 이용하여 느린 완벽보다 훑어보고 빨리가는 방법 선택
하지만 stochastic gradient decent도 지그재그로 가는 현상이 발생
learning rate가 너무 작으면 오래 헤매고 너무 크면 목적지를 지나침
3. overfitting의 해결법 : dropout
dropout이란 학습시킬 때 일부러 정보를 누락시키거나 노드를 중간중간 끄는 것
스냅샷성 데이터 ex)이미지, 영상 등 -> CNN(Convolutional Neural Network) ex)AlexNet, VGG, GoogleNet, ResNet
시퀀스성 데이터 ex)음성, 언어, 주식가격, 맥락 등 -> RNN(Recurrent Neural Network) or LSTM(Long Short Term Memory)
이미지는 인근 픽셀끼리만 상관있으니 가까운 것들끼리 묶어서 계산해서 의미도 챙기고 계산량도 챙기고
Covolution이란 특정 패턴이 있는 지 박스로 훑으며 마킹
Covolution filter를 사용하면 숫자가 나오는데 이 숫자들을 가지고 Actication에 넣어나온 값으로 이미지 지도를 새로
그림+zero padding도 까묵지말자
Covolution으로 간단한 필터들이 쌓아서 복잡한 필터를 만드는 데 이걸 뉴럴넷이 알아서 찾아줌
근데 이러면 너무 커지니까 이미지를 줄임
사이즈를 줄이는 방법은 Max Pooling을 사용
Pool에서 중요한 정보를 하나로 줄여 선명한 정보만 남긴 후 판단과 학습이 쉬워지고 노이즈가 줄어들고 융통성도 확보!
Stride로 좌우로 몇칸씩 뛸지 설정
이렇게 추상화가 끝난 데이터를 FC(FullyConnetedLayer)에 넣어 판단->value/OX/catecory