본문 바로가기
활동/2022 동계 모각코

[22동계모각코] 4회 계획 및 평가

by JJong | 쫑 2023. 1. 10.

시작 시간 : 23-01-10 오후 6시

오늘의 목표

LG Aimers: AI전문가과정 - Module 4. 『딥러닝(Deep Learning)』 수강


학습 전에 목표를 세웠다. 활용 사례에 대해서 잘 알아가자고 말이다. 학습되는 그 중간 과정(학습하는 와중의 쓰이는 수식들)은 강의를 들어도 머릿속에 잘 남지 않기 때문이다. 그래도 만약 가능하다면, 그 어떻게 활용되고 있는지와 그 중간 과정까지도 잘 알아가보자고 생각했다.


perceptron의 기본 정의와 perceptron을 통한 AND, OR, XOR gate 문제에 대해서 공부했다.


심층 신경망(Deep Neural Network; deep learning)의 기본 동작 과정

처음 들으면 어렵게만 다가오는 용어라고 생각한다. 심층 신경망은 '심층' + '신경망'의 합성어인데 각각의 의미를 따로 두고보면 이해가 쉽다. 신경망은 수많은 퍼셉트론 간의 연결이 일종의 망처럼 보인다고 하여 이를 일컫는 말이다. 퍼셉트론(perceptron)은 '뉴런의 동작 과정을 본따서 만든 알고리즘'으로, 인공지능의 뉴런이라고 생각하면 편하다.

퍼셉트론이 한 layer안에 여러 개의 층을 두고 있을 수 있다. 그리고 그런 layer가 여러 겹 쌓여있을수도 있다. 그리고 이런 모양새를 띠고 수많은 퍼셉트론이 연결되어 망처럼 보이는 것이 신경망(Neural Network)이다.

그리고 심층(Deep)은 단순히 이런 layer가 많아서 붙인 수식어다. hidden layer가 2개 이상이면 보통 심층이라는 말을 붙이는 듯 하다. (layer는 input, hidden, output으로 구분된다. input, output은 하나씩, hidden은 정해진 수 없이 존재한다.)

퍼셉트론(perceptron)의 구조

입력과 가중치의 곱을 모두 더한 갑과 b(bias)를 더한 값을 구한다. 그리고 이 값을 활성함수에 넣어 그 결과를 출력한다. 만약 다음 뉴런에게 넘겨야 한다면 다음 뉴런에게 이 값을 넘긴다.


Deep Learning은 왜 갑자기 부상하게 된 것일까?

기존의 선형 문제들 뿐만 아니라 비선형 문제까지도 풀어낼 수 있기 때문에 오래전부터 많은 사람들의 이목을 집중시켰다고 한다. 하지만 이전에는 충분한 양의 데이터와 H/W(하드웨어), 진보된 알고리즘이 마땅치 않았기에 제대로 활용할 수 없었다. 그리고 오늘날에 들어서서야 앞 세가지 조건들을 충족하게 되면서 Deep Learning의 발전이 크게 나아간 것이라고 한다.

  • Big Data
  • GPU Acceleration
  • Algorithm improved

비선형 문제를 해결 할 수 있는 Deep Learning

 

강의에선 내겐 낯선 문제를 다뤄 딥 러닝의 효능을 보여주었다. 낯선 문제란 바로 AND, OR, XOR gate 였다.

한 예시로 아래와 같은 식을 들어주었다.

  • y  = f(3 + 4*1 - 5*0) = 1
  • x0는 1로 가정하고, w0=3
  • x1=1,  w1=4
  • x2=0,  w2=-5

그래서 위 수식의 결과값은 0보다 크거나 같다를 만족하기 때문에 y = 1을 갖는다.

아래의 또다른 예시를 보자.

  • y  = f(-0.8 + 0.5*x1 + 0.5x2)
  • y : Output
  • x : Input
  • w : Weight

입력값 x1, x2에 따라서 y는 1을 가질 수도, 0을 가질 수도 있다. 그리고 내가 들었던 강의에서는 x1, x2값이 각각 0 또는 1일 때 출력 y의 변화를 두고 AND, OR, XOR gate라 소개하며 강의해주셨다. 이 내용을 기록하는 이유는 흥미롭게 들었던 내용이기도 하고, 이다음에 내가 들을 '논리회로' 강의에서도 자주 접할 개념이라 조금이라도 기초를 다지고 싶었던 욕심에서이다.


AND Gate

x1, x2 모두 1일때 y=1

x1, x2가 모두 1이상이어야 출력 y도 1을 갖는다. 이를 이차원의 평면에 놓고 보면 오른쪽 그래프와 같다. 나는 이렇게 그래프로 표현해낼 수 있다는 점이 아주 흥미로웠다. 입력의 개수(n개)가 아무리 많아도 n차원의 공간에서 위처럼 나타낼 수 있다는 의미일테니깐 말이다.


OR Gate

x1, x2 중 어느하나라도 1 이상일때 y=1

x1, x2 중 어느하나라도 1 이상이면 출력 y도 1을 갖는다. 보다시피 AND와 OR은 그래프로 나타내는 등 2차원의 hyper plane(선형)으로서 이분화가 가능하다.


XOR Gate

어떤 선형으로든 이분화가 어렵다.

x1, x2가 서로 다른 입력값을 가지고 있어야 출력 y가 1을 갖는다. 하나의 반듯한 직선으로 양분이 불가능하다. 그리고 이런 문제는 perceptron을 여러 단계에 걸쳐서 풀어낼 수 있다고 했다.


이후에는 딥 러닝이 수학적으로 어떤 과정을 거치는지 알려주셨다. 하지만 역시나 내 귀에는 잘 들어오지 않았다.

 

아래는 softmax function에 대한 설명이다. 직전학기에 수강했던 '인공지능과 미래사회'라는 강의에서 스치듯 본 함수인데 그땐 뭔지 잘 몰랐으나 이번에 공부하게 되면서 당장 이해한 내용을 정리해보았다. 

 

  • multi-class classifier에서 output vector의 형태가 (벡터의 원소를 다 합쳤을 때) 1이 나오는 확률 분포의 형태로 output을 내주는 특정한 활성 함수이다.
  • output vector의 원소를 다 합치면 1이 나온다.
  • 각 원소들이 의미하는 바는 "입력값이 몇 %의 확률로 이 class이다."를 의미한다.

이 블로그를 통해서 조금 더 깊게 공부해볼 수 있을 것 같다.

 

[코드로 이해하는 딥러닝 9] - Softmax Regression(multiple classification)

[코드로 이해하는 딥러닝 0] - 글연재에 앞서 https://limitsinx.tistory.com/27 [코드로 이해하는 딥러닝 1] - Tensorflow 시작 https://limitsinx.tistory.com/28 [코드로 이해하는 딥러닝 2] - Tensorflow 변수선언 https://lim

limitsinx.tistory.com

 

댓글