ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 220504
    교육/서울 ICT AI서비스 기획과정 2022. 5. 23. 00:57
    728x90

    쉽게 설명하는 딥러닝

     

    컴포넌트

    여러 컴포넌트가 모여서

    여러 층을 쌓으면

    =>딥뉴럴넷(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가 너무 작으면 오래 헤매고 너무 크면 목적지를 지나침

    SGD를 개선한 여러 optimizer

    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)

     

    VGGNET구조

    이미지는 인근 픽셀끼리만 상관있으니 가까운 것들끼리 묶어서 계산해서 의미도 챙기고 계산량도 챙기고

    Covolution이란 특정 패턴이 있는 지 박스로 훑으며 마킹

    Covolution filter를 사용하면 숫자가 나오는데 이 숫자들을 가지고 Actication에 넣어나온 값으로 이미지 지도를 새로

    그림+zero padding도 까묵지말자

    Covolution으로 간단한 필터들이 쌓아서 복잡한 필터를 만드는 데 이걸 뉴럴넷이 알아서 찾아줌

    근데 이러면 너무 커지니까 이미지를 줄임

    사이즈를 줄이는 방법은 Max Pooling을 사용

    Pool에서 중요한 정보를 하나로 줄여 선명한 정보만 남긴 후 판단과 학습이 쉬워지고 노이즈가 줄어들고 융통성도 확보!

    Stride로 좌우로 몇칸씩 뛸지 설정

     

     

     

     

     

    최종적으로 이렇게 됨

    이렇게 추상화가 끝난 데이터를 FC(FullyConnetedLayer)에 넣어 판단->value/OX/catecory

     

     

    '교육 > 서울 ICT AI서비스 기획과정' 카테고리의 다른 글

    220510  (0) 2022.05.23
    220509  (0) 2022.05.23
    220503  (0) 2022.05.15
    220429  (0) 2022.04.29
    220428  (0) 2022.04.29

    댓글

Designed by Tistory.