• [외부 강의] TensorFlow 기반 딥러닝의 이해(1)

    2021. 8. 6.

    by. ziasu

    반응형

    1. 인공지능(AI) 분야

    • AI(Artificial Intelligence): 가장 큰 범주로, 기계에 지능을 주는 모든 범주
    • ML(Machine Learning): 기계가 자동으로 지능을 가지게 함 / 데이터의 feature를 사람이 먼저 입력해줘야 함
    • DL(Deep Learning): 기계가 스스로 능동적으로 학습 / 데이터 feature 선정을 인공신경망을 통해 학습 / ML보다 더 많은 양의 데이터 필요
    • Neural Network: 뇌를 모티브로 생물학적 신경망을 모사

     

    2. 퍼셉트론(Perceptron)

    • 딥러닝의 기원이 되는 알고리즘
    • 위의 그림은 단층 퍼셉트론으로 입력층(input layer), 출력층(output layer)으로 구성
    • [weighted sum이 특정 threshold값을 넘어서면 fire!]되는 방식으로 작동

     

    3. 활성화 함수(Activation Function)

    • 앞서 말한 퍼셉트론에서 출력이 되는 threshold라고 생각하면 됨(활성 or 비활성 결정)
    • Activation Function을 쓰면 특정 조건에 부합하는 값을 가진 값만 층을 통과하기 때문에 출력 값이 비선형적인 특징을 가질 수 있게 됨
    • 적절한 활성화 함수 사용으로 기울기 소실 문제 발생 확률을 줄일 수 있음

     

    ## 기울기 소실(Vanishing Gradient) 문제란...?

    -신경망 층이 늘어나면서 역전파를 통해 전달되는 기울기 값이 점점 작아지는 문제가 발생

     

    why...?

    ->오차 역전파가 가중치를 수정하려면 미분 값이 필요

    ->많은 층을 통과하다 보면 그 미분 값을 여러 개 곱해져야 하는데 1보다 작은 값을 계속해서 곱해주면 결국 0에 가까워짐

    ex) 시그모이드 활성화 함수의 미분 최댓값은 0.3인데 3번만 통과해도 0.027이 됨

    ->일반적으로 음수 값에서는 0, 양수 값에서는 y=x꼴인 ReLU를 사용하면 성능이 좋다

    왜냐하면 대부분의 값에서 기울기가 0이 되는 것을 막아주기 때문

     

    4. 심층 신경망(Deep Neural Network)

    • 입력층(input layer), 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들이 있음
    • 은닉층(hidden layer)의 추가로 기존의 XOR문제를 해결
    • 오차 역전파(back propagation)를 통해 가중치를 수정해나가며 최적화를 진행

     

    5. 오차 역전파(Back Propagation)

    • 출력층(output layer)에서 발생한 결과를 입력층(input layer)으로 전송하면서 오차 수정을 통해 가중치를 재설정하는 과정
    • 보통 Forward Pass과정을 통해 최종 출력단에서 error & 손실 함수(loss function)를 구하고 / Back Propagation과정에서 앞서 얻은 정보를 바탕으로 가중치 & 바이어스 값을 경신
    • 궁극적으로 손실 함수(loss function)가 최소화되는 지점으로 가는 것이 목표

     

    ##손실 함수(loss function)이란...?

    ->예측값과 실제값의 차이를 계산하여 성능을 측정함

    ->이 지표를 바탕으로 가중치 & 바이어스 값 경신의 방향성을 얻음

     

    6. 옵티마이저(Optimizer)

    • 오차 역전파 부분에서 이야기하는 '손실 함수(loss function) 최소화되는 지점을 어떻게 찾지?'에 대한 답이 될 수 있는 개념
    • 가장 기본적인 Optimizer로는 경사 하강법(Gradient Descent)이 있다

    [경사 하강법]

    ->Loss function 그래프가 다음과 같다면 미분을 했을 때

    [음수 값 >> 0 >> 양수 값]과 같은 꼴이 나옴

    ->미분 값을 바탕으로

    미분 값이 음수일 때는 x값을 증가시키고

    미분 값이 양수일 때는 y값을 증가시키는

    느낌으로 차근차근 음수 값이 0인 지점을 찾아가는 원리

     

    [속도와 정확도 문제를 해결하는 고급 경사 하강법]

    확률적 경사 하강법(SGD): Mini-Batch로 학습을 진행하여 속도 개선

    모멘텀(Momentum): 관성, 즉 이전 batch의 학습결과도 반영하여 정확도 개선

    아다그라드(Adagrad): 업데이트가 잦은 가중치에 대해서는 학습률을 적게 하여 보폭 크기 개선

    알엠에스프롭(RMSProp): 보폭 민감도를 보완

     

     

     

    반응형

    댓글