220v
젝무의 개발새발
220v
전체 방문자
오늘
어제
  • 분류 전체보기 (255)
    • AI (35)
      • ML, DL 학습 (30)
      • 논문 리뷰 (4)
      • 실습 및 프로젝트 (1)
    • Algorithm (145)
      • LeetCode (13)
      • 프로그래머스 (35)
      • 백준 (96)
      • 알고리즘, 문법 정리 (1)
    • Mobile, Application (17)
      • Flutter (10)
      • iOS, MacOS (7)
    • BackEnd (7)
      • Flask (1)
      • Node.js (5)
      • Spring, JSP..etc (1)
    • Web - FrontEnd (18)
      • JavaScript, JQuery, HTML, C.. (12)
      • React (6)
    • DataBase (1)
      • MySQL (1)
      • Firebase Firestore (0)
      • Supabase (0)
    • Git (1)
    • 기타 툴 및 오류 해결 (3)
    • 강의 (5)
      • Database (3)
      • 암호학 (2)
      • 알고리즘 (0)
    • 후기와 회고 (2)
    • 블로그 꾸미기 (1)
    • 일상과 이것저것 (20)
      • 맛집 (12)
      • 세상사는일 (4)
      • 도서리뷰 (1)
      • 이런저런 생각들 (잡글) (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • REACT
  • top-down
  • 다익스트라
  • Prefix Sum
  • Mathematics
  • Priority Queue
  • IMPLEMENT
  • bitmasking
  • 구현
  • 백준
  • Lis
  • dfs
  • Backtracking
  • topological sort
  • union-find
  • 티스토리챌린지
  • BFS
  • binary search
  • 위상 정렬
  • dp
  • implementation
  • simulation
  • Greedy
  • disjoint set
  • brute-Force
  • 오블완
  • 프로그래머스
  • two pointer
  • Dynamic Programming
  • Minimum Spanning Tree

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
220v

젝무의 개발새발

AI/ML, DL 학습

[ML/DL 스터디] <ANN - 2> Artificial Neural Network (ANN) - 2

2024. 11. 8. 10:55

Reference

https://iai.postech.ac.kr/teaching/machine-learning
https://iai.postech.ac.kr/teaching/deep-learning
위 링크의 강의 내용에 기반하여 중요하거나 이해가 어려웠던 부분들을 정리하여 작성하였고,
모든 강의 슬라이드의 인용은 저작권자의 허가를 받았습니다.

또한, 모든 내용은 아래 Notion에서 더 편하게 확인하실 수 있습니다.
>>노션 링크<<

 

Keywords

  • Activation Function (tanh, ReLU)
  • ANN (Multi-layer)
  • ANN as Kernel Learning
  • Deep Learning
  • Looking at Parameters

 

Activation Function

앞 장에서 Activate Function을 step function에서 sigmoid function으로 대체하였다.

Sigmoid function 이외에도, Activate Function으로써 Hyperbolic Tangent(tanh), ReLU와 같은 함수들을 사용할 수 있다.
(각각의 특징이 있고, 사용하는 용도가 다르다. 여기서는 각각의 특성에 대해서 보다는, sigmoid가 아닌 다른 함수도 activate function으로 이용할 수 있다는 것만 인지하고 넘어가자. 뒷 장에서 다룰 것이다.)

 

ANN

Single Layer(하나의 weighted sum을 계산하고 - Activation Function을 적용하여 output을 내는 형태의 Layer)로는, data의 input과 output 사이의 복잡한 관계를 표현하기에는 무리가 있다.

이러한 문제를 해결하기 위해, multi-layer를 도입한다.

하나의 layer의 output을 다시 input으로 간주하여, 또 다른 layer의 input으로 사용하여 layer를 이어붙이는 것이다. 그림을 통해 어떻게 확장되는 지는 쉽게 이해할 수 있을 것이다.

이 과정을 통해, 하나의 layer에서 뽑아낸 feature가, 다음 layer를 거쳐 그러한 feature의 feature가 추출된다(feature들을 계속 mapping해나간다)는 것을 대략의 느낌으로 이해할 수 있으면 좋을 것 같다. 이러한 개념이 결국 뒤에서 다루는 CNN 등에서, image의 특정 부분의 특징이 하나의 layer에서 다루어진다는 것을 이해하는 것의 선행이 될 수 있다.

위와 같은 frame을 확정하고 나면, 최종적으로 맨 왼쪽의 input과 맨 오른쪽의 output 사이(주어진 data에서의 input-output이다)에서의 layer마다 input-output을 연결하는 weight가 존재할 것이고, 이러한 weight $\omega$ 들을 찾는 작업을 수행하게 되는 것이 핵심이다.

 

앞까지는 Micro한 관점에서, Perceptron부터 ANN까지 어떻게 확장되는 지 보았고,

아래부터는 또 다른 관점에서, ANN을 Kernel Learning으로써 바라보는 방식을 소개한다.

 

ANN as Kernel Learning

이전에 다룬 것과 같이, XOR Problem과 같은 non-linear separable problem은 Kernel을 이용한 Mapping을 통해 data를 전처리하여 해결할 수 있다.

 

Kernel(mapping)을 통해 nonlinear pattern을 가진 data를 linear model에서 동작할 수 있도록 하는 것!

 

이를 도식화하면, 위의 그림과 같이 input data를 Kernel을 통해 전처리하고, (더 높은 차원으로 mapping, 새로운 feature space로 변경.)
그러한 data를 다시 neuron(perceptron, - 여기서는 Linear하게 작동하는 하나의 Model이라고 간주하면 될 듯)에 적용하는 형태로 쉽게 이해할 수 있다.

(위에서 설명한 Kernel의 역할을 도식화했을 뿐.)

 

결국, Kernel Learning의 관점에서 바라보는 ANN이란,

이러한 Nonlinear mapping(Kernel)을 또 다른 neuron으로 바라볼 수 있다는 것이 핵심이다.

 

최종적으로, 이를 일반화하면 MLP로 바라볼 수 있다는 것이다.

(내부적으로는, 앞의 layer는 kernel과 같이 동작하고, 뒤의 layer는 linear classifier와 같이 동작하는 것이지만, 넓게 바라보면 MLP와 다를 것이 없다는 것.)

→ 또한, 이러한 kernel 역할을 하는 layer가 하나로 부족하다면 앞에 추가적으로 여러 layer를 붙여 나가면 되는 것이고, 이로써 첫 input feature에 대한 feature representation이 더 크게 변형될 것(classify가 더 잘 될 수 있는 feature represent 방식을 학습하게 됨)이고, 마지막에 classify 성능이 높아짐을 기대할 수 있다는 것.

 

결국 ANN이란.. parameterize된 Universal function approximator.

학습 이전에 이러한 layer의 structure를 지정해 놓고, parameter들을 학습해 나가는 과정.

초기의 input을 classify하기 위한, weight/bias로 parameterize된 function을 approximate해 나가는 과정.

→ Optimization을 통해, 이러한 parameter(weight, bias)를 찾아 나갈 것.

→ Gradient Descent, Back Propagation.

 

Parameter

parameter (weight, bias)가 무슨 역할을 하는 지, Micro한 관점에서 ANN을 확인해보자.

우선 전에 다뤘던 것과 같이, Perceptron으로는 이러한 data들을 2개의 class로 Linearly Separate할 수 없다.

그래서 ANN에서는, 가운데의 hidden layer를 통해 data가 linearly separable하게 mapping되도록 represent하려면 어떻게 weight, bias를 설정해야 하는 지 학습하게 된다.

    'AI/ML, DL 학습' 카테고리의 다른 글
    • [ML/DL 스터디] <ANN - 4> Vanishing Gradient, Batch Normalization, Dropout
    • [ML/DL 스터디] <ANN - 3> Training ANN, Backpropagation
    • [ML/DL 스터디] <ANN - 1> Artificial Neural Network (ANN) - 1
    • [ML/DL 스터디] <Dim. Reduction> Principal Component Analysis (PCA)
    220v
    220v
    DGU CSE 20 / Apple Developer Academy @ POSTECH 2nd Jr.Learner.

    티스토리툴바