본문 바로가기
Tech Blog/Aiffel

딥러닝과 신경망

by Cloud 9 2022. 1. 27.
728x90
반응형
728x90

 

다들 중고등학교 수학 시간을 생각하면 어떤 내용이 떠오르나요?

 

저는 당연히 '함수'가 생각납니다. 

 

처음 배울 때, 어려워서 충격받았던 기억이 선명하네요 :-)

중학교 3학년 수학 수업에서 선생님께서 (x라는) 무언가를 '어떤 기능을 하는 기계'에 넣으면 그것에 맞는 (y) 결과가 나온다고 말씀하셨습니다. 처음에는 이해하기 힘들었지만, 오랫동안 함수를 접하면서 익숙해졌던 기억이 납니다. 

 

 

신경망은 함수와 같습니다. 

 

만약, 신경망에 대해 이해가 어려우시다면 수학시간에 배운 함수를 생각해보시면 도움이 되겠습니다.

 

함수에서는 input에 따라 그에 맞는 output이 나왔습니다. 

신경망의 경우에도 "입력 > 일정한 연산 > 출력"이 일어납니다. 

 

하나의 layer가 있다면 하나의 함수가 사용되는 것이고

인공 신경망에 여러 개의 layer가 있다면 합성합수를 통해 여러 번의 계산이 이루어진다고 생각하시면 되겠습니다. 

 


파이썬을 통해 함수 구현하기 

def f(x) :			# define function f(x)
	y = 2*x + 1		# 일차 함수 구현
    return y		# 결과 도출

 

Quest. f(x) = x^3 + e^(x+1)을 파이썬 함수로 구해 보세요.

 

힌트 

math.exp(x) e(자연상수, 2.718281828459045)의 x 제곱

 

# 자연상수 e처리를 위해 python에 내장된 math 라이브러리 이용하기. 

import math			# math 라이브러리 소환!

def f(x):
    x**3 + math.exp(x+1)
    
    # 처음에는 아무 생각 없이 제곱을 할 떼  ^를 입력했다...
	# 제곱은 **를 입력해야 한다. 

f(5)

함수의 역할 

 

1. x와  y의 관계를 나타내는 도구

y는 x의 함수이다.

위의 이 표현은 다음과 같이 해석될 수 있습니다. 

1. y는 x의 변화에 종속적이다.
다시 말해, x가 변하면 그 변화정도에 따라 y도 변한다.

2. x가 변하는 정도에 따른 y의 변화는 x와 y의 간 함수의 형태로 결정된다.

 

 

2. x를 변환해주는 도구

 

https://youtu.be/kYB8IZa5AuE

 

3. Mapping : x의 공간에서 y의 공간으로 mapping 해주는 도구

⁕ 미리 알아야 할 기하학 지식
  1. 스칼라: '크기'를 갖지만 방향은 갖지 않는다. 좌표계가 변환되어도 변화하지 않는 양이다. 주로 하나의 숫자로 표현됨.

  2. (유클리드) 벡터: 유클리드 공간에서 '크기'와 '방향'을 모두 포함하는 기하학적 대상. 주로 여러 개의 숫자로 표현된다. 좌표 상에서 유향 화살표로 표현됨 (길이와 방향을 갖는 화살표)

(1) one-to-one mapping
: input x와 output y가 모두 스칼라인 경우. 단 하나의 값을 입력하면 단 하나의 값만 나온다. 

 

(2) Many-to-One mapping
: 여러 개의 input으로 하나의 out을 출력하는 경우.  벡터를 입력해서 단 하나의 스칼라를 출력하는 형태. 다변량 회귀라고도 한다. 

 

 

이를 머신러닝/딥러닝에서는 회귀 문제라고 한다. 

 

(3) Many-to-Many
: 입력값도 벡터, 출력 값도 벡터! 분류 문제에서 많이 사용된다. 

 - 분류 문제 : 여러 개의 카테고리 중에서 어떤 카테고리에 속하는지 맞추는 문제

 

https://gilssang97.tistory.com/46

 

[JPA] 다대다(N:M) 관계 매핑, 좋아요 기능 구현

시작하기에 앞서 두 테이블끼리 연관 관계를 맺을 때, 다양한 연관 관계를 가진다. 이는 일대다(1:N), 다대일(N:1), 일대일(1:1), 다대다(N:N)으로 이루어져있다. 일대다와 다대일 같은 경우 서로 관계

gilssang97.tistory.com


 

함수와 모델

머신러닝과 딥러닝은 '완벽한 함수'를 찾는 수학 문제를 푸는 것이 아닌

'그나마 가장 비슷하게 표현할 수 있는 함수'에 조금씩 가까워지게 시도하는 것에 가깝다. 

 

그렇다면 그나마 나은 함수를 찾으려면 어떻게 해야 할까?

 

1. 모델을 어떤 함수로 나타낼 것인지 정한다. 

  • 입력 데이터가 하나인 경우 (One-to-One 문제)
    f(x)=wx+b와 같은 일차 함수를 사용할 수 있습니다.
  • 입력 데이터가 여러 개의 특징으로 이루어진 벡터인 경우 (Many-to-One 문제의 경우)
     f(x) = wx_1 + wx_2 +... + wx_n 과 같은 다변수 선형 함수를 사용할 수 있다. 
  • 신경망 모델도 사용 가능

Inductive Bias : 데이터를 설명할 수 있는 최적의 함수가 특정한 함수 공간에 존재할 것이라는 가설

- 모델이 학습과정에서 접하지 못한 새로운 데이터에 대해서도 잘 예측을 하려면, 일반화가 잘 이루어져서 일반적인 패턴을 잘 반영할 수 있는 모델이어야 한다.

 

2. 모델의 함수 형태를 정했다.
→ 해당 함수 공간 안에서 최적의 함수를 찾는다.  "모델 학습"

 


  • 머신러닝 = 빅데이터로 학습해서 output을 예측
  • 딥러닝 = 입력값에 있는 표현 방식을 익혀서 학습해서 output을 예측
  •  피처 엔지니어링(Feature Engineering)
    : 데이터 전처리 + 가공

 

SQL학습 및 DB설계 - 머신러닝이란 무엇인가?

머신러닝이란 무엇인가? Sep 4, 2017 • Introduction • 김길호 Tags: supervised learning, data set, learning model, learning algorithm 수아랩 리서치 블로그 첫 번째 글의 주제는 ‘머신러닝이란 무엇인가?’ 입니다.

www.stechstar.com

 

퍼센트론은 세 개의 층으로 구성된다. (Input layer - hidden layer - output layer)

다층 퍼셉트론(MLP) : 2차원적으로 연결되어 구성된 인공신경망

 

 

SQL학습 및 DB설계 - 딥러닝이란 무엇인가? (1)

딥러닝이란 무엇인가? (1) Oct 10, 2017 • Introduction • 김길호 Tags: deep learning, deep neural networks, representation learning 수아랩 리서치 블로그 두 번째 글의 주제는 ‘딥러닝이란 무엇인가?’ 입니다. 오늘

www.stechstar.com

 

SQL학습 및 DB설계 - 딥러닝이란 무엇인가? (2)

딥러닝이란 무엇인가? (2) Oct 10, 2017 • Introduction • 김길호 Tags: deep learning, deep neural networks, representation learning (이전 포스팅 보기) 지금까지 딥러닝의 개념과 대표적인 딥러닝 모델에 대하여 알아

www.stechstar.com

 

 

[참고 자료]

 

https://newsight.tistory.com/302 :  the introduction of reinforcement learning의 저자인 Richard Sutton의 AI에 대한 글 번역자료 

 

https://blog.pabii.co.kr/aint-blackbox/ : AI가 블랙박스냐고?

 

https://www.joongang.co.kr/article/22394025#home : AI... 못 믿어...

 

https://realblack0.github.io/2020/04/27/explainable-ai.html : 설명 가능한 인공지능이 뭐야?

 

https://www.youtube.com/watch?v=hUnRCxnydCc : KDD2016 paper 573 "Why should I trust you?" Explaining the predictions of any classifier. 

 

 

728x90
반응형

'Tech Blog > Aiffel' 카테고리의 다른 글

딥러닝 그리고 철학  (0) 2022.01.27