728x90
반응형

진리표

컴퓨터 디지털 회로 gate 논리

AND: 둘다 1 이면 1

OR:   둘 중 하나라도 1 이면 1

XOR: 둘 중 하나만 1이면 1

분류기 퍼셉트론

 

XOR (exclusive OR) 문제

  • 그림처럼, 각각 두 개씩 다른 점이 있다고 할 때, 하나의 선을 그어 색깔별로 분류하는 방법을 생각해 보자.
  • 어떠한 한 개의 직선으로도 분류할 수 없다.... 1969년 Marvin Minsky 가 발견
  •  

 

XOR 문제 해결

  • 1990년대 다층 퍼셉트론(multilayer perceptron)으로 해결
  • 아래 그림과 같이 2차원 평면 공간을 3차원으로 확장해서 분류할 수 있음.
  • 즉, 차원 확장과 좌표 평면 변환 이용

 

  • XOR 문제를 해결하기 위해서는 2개의 퍼셉트론을 한번에 계산할 수 있어야 함.
  • 은닉층(hidden layer)을 가진 다층 퍼셉트론을 구현하여 가능.

 

 

다층 퍼셉트론

1. 각 퍼셉트론의 가중치(w)와 바이어스(b)를 은닉층의 노드(n)로 보냄.

2. 은닉층으로 들어온 w, b에 시그모이드 함수를 적용하여 최종 결과값을 출력함

 

w와 b를 구하기 위해서 행렬로 표현하면, 

연습: XOR 문제 해결

아래 예제를 통해서, XOR 진리표를 구할 수 있는지 연습해 보자. 

먼저 각 노드 n1, n2를 구하고, 최종 y 출력값을 계산한다. 

 

 

 

 

728x90
반응형
728x90
반응형

다변량 함수 알고리즘

  • 입력값(x)을 통해 출력값(y)을 구하는 다변량 회귀식은 아래와 같이 표현할 수 있음.

  • 출력값(y)을 알려면, a1, a2, b 값을 알아야함. 

 

  • 입력된 x1, x2는 각각 가중치 a1, a2와 곱해지고, b가 더해진 후 로지스틱 회귀함수인 시그모이드 함수를 거쳐 1 또는 0값이 출력됨.... 퍼셉트론(perceptron) 개념

 

퍼셉트론 (perceptron)

  • 1957년 프랑크 로젠블라트에 의해 고안됨.
  • 이후 인공 신경망, 오차 역전파 등의 연구개발을 거쳐 딥러닝으로 발전됨.

 

  • 인간 뇌의 뉴런의 신호 전달과 메커니즘이 유사.
  • 뉴런과 뉴런 사이의 시냅스 연결부위가 자극(입력값) 받으면, 시냅스에서 화학물질이 나와 전위 변화를 일으킴.
  • 전위가 임계치를 넘으면 다음 뉴런으로 신호를 전달(출력값 1)하고, 임계치 아래 자극이면 아무것도 하지 않음(출력값 0).... 로지스틱 회귀

 

  • 즉, 로지스틱 회귀가 퍼셉트론의 기본 개념
  • 퍼셉트론은 입력값과 활성화 함수를 사용하여 출력값을 다음 퍼셉트론으로 넘기는 단위 신경망임.

 

딥러닝 용어정리

가중치(weight): 기울기 a1, a2를 퍼셉트론에서는 가중치(weight)라고 하고 w1, w2으로 표기

바이어스(bias): 절편 b는 퍼셉트론에서 편향(bias)라고 함. 

가중합(weighted sum): 입력값(x)와 가중치(w)를 곱한 후 모두 더한 다음 바이어스(b)를 더한 값

활성화 함수: 0,1을 판단하는 함수. 예) 시그모이스 함수

 

 

 

 

728x90
반응형
728x90
반응형

로지스틱 회귀 (logistic regression)

  • 참(1), 거짓(0)을 구분하는 분류 모델
  • 로지스틱 회귀 모델을 만들어 YES or NO의 값을 출력하는 것이 딥러닝의 원리

시그모이드 함수 (sigmoid function)

이 함수를 이용해서 구해야 할 값은 ax+b (선형회귀식). 

결과값(y)은 0과 1사이

a(그래프의 경사도): a가 커지면 경사가 커지고, a가 작아지면 경사가 작아진다. 

b(그래프의 좌우 변위): b가 크면 왼쪽, b가 작으면 오른쪽으로 그래프가 이동함

 

오차 공식

  • 시그모이드 함수를 오차를 나타내는 함수로 생각하면, a, b에 따라서 오차가 변한다. 
  • a가 작아지면 오차는 무한대로 커지나, a가 커지면 오차는 0에 수렴한다.
  • b는 너무 크거나 작을 경우, 오차가 증가한다. 

 

 

 

시그모이드 함수 결과값은 [0,1]범위

실제값이 1이고 예측값이 0인 경우: 오차 증가

실제값이 0이고 예측값이 1인 경우: 오차 증가

이 것을 함수로 나타낸 것이 로그 함수.

 

 

 

 

로그함수

그래프에서 y는 실제값

실제값(y)이 1인 경우가 파란색 함수 

예측값이 1일 때, 오차는 0

예측값이 0일 때, 오차는 증가

 

실제값(y)이 0인 경우가 빨간색 함수

예측값이 0일 때, 오차는 0

예측값이 1에 가까울 수록, 오차는 증가

 

 

이 것을 통합해서 표현하면 아래 함수로 표현 가능

y(실제값)이 1이면 B부분이 0 --> A만 남아, 파란색 그래프만 사용

y(실제값)이 0이면 A부분이 0 --> B만 남아, 빨간색 그래프만 사용

728x90
반응형
728x90
반응형

다중 선형 회귀

기온에 영향을 미치는 요소가 시간(x1)뿐 아니라 풍속(x2)도 있을 수 있다. 

이 경우 하나의 종속 변수(y)에 2개의 독립변수(x1, x2)가 영향을 미치므로, 아래와 같은 식으로 표현 가능.

 

y = a1x1 + a1x2 + b

 

시간(x1) 기온(y) 풍속(x2)
0 16  
3 14  
6 17  
9 19  
12 22  
15 26  
18 23  
21 19  
평균 19.5  

 

 

 

경사 하강법을 사용하여 두 기울기 a1, a2 구함. 

728x90
반응형
728x90
반응형

경사하강법 (gradient descent)

- 2차원 이상의 함수에서 최저점(기울기, 절편)을 찾는 방법

- 오차의 변화의 2차 함수 그래프를 만들고 적절한 학습률을 설정해 기울기가 0인 지점을 구하는 것. 

 

방법적 알고리즘 (2차 함수)

1. X1에서 미분으로 기울기 구함

2. 구해진 기우기의 반대방향으로 얼마간 이동시킨 X2에서 미분

   (기울기가 +이면 음의 방향, 기울기가 -이면 양의 방향으로 이동시킴)

3. 미분 값이 0이 될때 까지 위 과정을 반복해서 최소값을 구함.

 

학습률 (learning rate)

- 학습율을 너무 크게 설정하면, 기울기의 부호를 바꿔 이동할 때 적절한 거리는 찾지 못해 너무 멀리 이동하면, 기울기(a)가 수렴하지 않고 발산할 수 있음. -> overshooting

학습율을 너무 작게 하면 국소 최적치(local minima)에 빠져 최적화된 w를 찾기 전에 학습이 끝날 수 있다. 

 

- 따라서, 이동거리를 정하는 것이 중요 ... 학습률 개념

 

- 딥러닝에서 학습률의 값을 적절히 바꾸면서 최적의 학습률을 찾는 것이, 최적화 과정 중의 하나. 일반적으로 0.01 을 초기값으로 하고 학습비용 (cost)를 관찰한 후 조금식 조정함.

- 경사 하강법은 오차 변화의 2차 함수 그래프를 만들고 적절한 학습률을 설정해 기울기가 0인 지점을 구하는 것. 

- 최적의 절편(b)을 구할 때도 동일하게 사용.

- a, b에 대해서는 각각 편미분

 

 

학습율 조정 방법

TensorFlow 가 제공하는 메소드를 이용

tf.train.exponential_decay()

tf.train.natural_exp_decay()

tf.train.polynomial_decay()

tf.train.inverse_time_decay()

tf.train.piecewise_constant()

 

 

 

3차 이상 함수

- 다차원 편미분 개념 도입

출처: BOAS 수리물리

 

확률적 경사하강법 (Stochastic Gradient Descent, SGD)

경사 하강법은 계산량이 커서 속도가 느리다.

확률적 경사 하강법은 데이터 일부를 랜덤하게 추출하여 일부 데이터만을 사용하기 때문에 속도가 빠르고 자주 업데이트할 수 있는 장점이 있다. 

확률적 경사 하강법의 중간 결과는 진폭이 크고 불안정해 보일 수 있으나, 빠르게 최적해에 근사한 값을 찾아낼 수 있기에, 경사하강법을 대체해서 사용된다. 

특히 모멘텀(momentum)을 이용하면, 지그재그 현상을 줄이면서 이동 방향에 관성을 더해 효과적으로 계산할 수 있다. 

728x90
반응형
728x90
반응형

선형 회귀법

- 독립 변수 x를 사용해 종속 변수 y의 움직임을 설명하고 예측하는 작업

- 가장 적절한 예측선을 그려내는 과정. 즉, 최적의 기울기(a), 절편(b) 찾는 과정

- 모든 점들로부터의 오차가 최소인 지점에 가장 적절한 예측선을 그림

 

기울기와 절편 찾는 방법

최소 제곱법 - 1차함수용  독립변수 x가 1개일때 사용

경사 하강법 - 다차함수용 독립변수 x가 2개 이상인 경우

 

 

최소 제곱법 (method of least squares)

             기울기 = {(x- x평균)(y-y평균)의 합}/{(x-x평균)^2의 합}

 

시간 기온 예측값
0 16  
3 14  
6 17  
9 19  
12 22  
15 26  
18 23  
21 19  
평균 19.5  

 

 

 

평균 제곱 오차 (mean square error, MSE)

오차의 합 = {(y-y평균)^2}의 합/{총 변량 갯수)       ....  머신러닝 딥러닝에서 중요.

 

 

 

선형회귀란 임의의 직선을 그려 이에 대한 평균 제곱 오차를 구하고, 이 값을 최소로 만드는 기울기(a)와 절편(b)를 찾는 과정.

이 최소값을 찾기위해서 반복계산이 필요함

 

 

 

728x90
반응형
728x90
반응형

자연을 이해하기 위한 과학적 접근법 

1) 선형화 

2) 정량화

 

선형 함수

  • 선형함수: 1차함수로 표현되는 변량간의 관계
  • 자연세계는 기본적으로 비선형 세계
  • 인간의 인지 능력은 선형적, 즉 1차원적, 직관적
  • 복잡한 비선형계의 데이터는 선형화가 필요... 1차선형회귀
  • 이 경우, 오차가 발생하므로, 통계학의 확률분포 해석이 필요

 

 

비선형 함수

  • 만약 설명력을 높이기 위해서는 다차 회귀함수가 필요

 

 

비선형의 불확실성

  • 비선형 함수에서는 1개 결과값 Y의 원인자는 차수에 따라 그 수가 늘어남.
  • 즉, 알고 있는 관측/관찰 결과의 원인은 차원에 따라 명확히 알 수가 없다. 

AI 불확실성과 한계

  • 절대 인간이 될 수 없는 AI
  • AI 인간과 공존하는 지식

 

728x90
반응형
728x90
반응형

딥러닝을 이해하는데 가장 중요한 수학원리는 "미분"

 

1차 함수의 기울기와 절편

기울기와 절편

 

 

2차함수의 최소값

  • 미분=순간 변화율
  • 미분으로 함수의 최소값을 구함.
  • 어느 순간에 어떤 변화가 일어나고 있는지를 숫자로 나타낸 것을 "미분 계수" = 그래프의 기울기
  • 기울기가 0인 지점이 최소값 지점. 
  • 딥러닝에서는 최소값을 찾아내는 과정이 매우 중요.
  • 1차함수의 경우, 수학적으로는 최소 제곱법으로 간단히 찾을 수 있음.
  • 딥러닝이 필요한 다차함수의 경우, 미분과 기울기를 이용하는 경사 하강법을 사용. 

 

연속함수와 이산함수

미분과 차분

아날로그와 디지털

 

 

 

 

728x90
반응형
728x90
반응형

진리탐구 방법 (연역법, 귀납법)

 

 

 

 

기적에 대한 차원적 접근

1차원 세계

 

 

 

1, 2차원 세계

 

 

 

 

 

 

 

1,2,3차원 세계

 

 

 

 

 

 

 

 

 

고차원 존재의 일상은 저차원 존재에게 기적

질량 보존의 법칙 위배
중력의 법칙 위배

 

 

 

 

 

 

신 존재에 대한 추론

1. 외계인?

 

 

 

 

 

 

2. 자기 현현의 보편성

 

 

 

 

 

 

 

유물론 vs. 유신론

인간 인식 방법의 한계로 인해,

두 가지 인식 방법을 모두 포함한 균형잡힌 자세가 필요

분쟁, 전쟁, 착취, 이기주의

 

728x90
반응형
728x90
반응형

머신러닝 딥러닝은 분류와 회귀 문제 해결을 위한 도구(모델)

예) 개 고양이 분류

 

1. 확률적 모델링 (probabilistic modeling)

  • 통계학 이론을 빅데이터 분석에 응용한 것
  • 초창기 머신 러닝 형태 중 하나
  • 대표적인 모델 알고리즘은 나이브 베이즈 알고리즘

1.1 나이브 베이즈(Naive Bayes) 

  • 입력 데이터가 모두 독립이라 가정하고, 베이즈 정리(Bayes' theorem)을 적용하는 머신 러닝 분류 알고리즘
  • 분류 알고리즘

1.2 로지스틱 회귀(logistic regression)

  • 분류 알고리즘 (회귀 알고리즘 아님)

 

2. 초창기 신경망 - 1980년대

  • 경사 하강법 최적화를 이용하여 변수가 연쇄적으로 연결된 연산을 훈련하는 기법
  • 1989년 Yann LeCun이 합성곱 신경망과 역전파 알고리즘을 결합하여 (LeNet), 이미지 분류(손글씨 숫자)에 최초 성공
  • 이 후, 미국 우편번호 자동 분류에 사용됨. 

 

3. 커널 방법 (Kernel method) -1990년대

  • 분류 알고리즘

3.1. 서포트 벡터 머신 (support vector machne, SVM)

  • 1995년 Vladmir Vapnick과 Corinna Cortes 에 의해 개발됨. 
  • 2개의 다른 범주에 속한 데이터 그룹 사이를 확실히 구분하는 결정경계(decision boundary)를 찾는 알고리즘
  • 장점: 
    • 간단한 분류 문제에 최고 수준의 성능을 보임. 
    • 수학적으로 분석하기 용이하여 이론을 이해하고 설명하기 쉬움. 
  • 단점:
    • 대용량 데이터셋으로의 확장이 어려움
    • 이미지 분류에서 낮은 성능.
    • 복잡한 특성공학(feature engineering) 필요함. 

 

4. 결정트리, 랜덤 포레스트, 그래디언트 부스팅 머신 - 2000년대

4.1 결정트리(decision tree) 

  • flowchart 구조
  • 입력 데이터 분류 또는 출력값 예측에 사용
  • 시각화와 이해가 쉬움

4.2 랜덤포레스트(Random forest) 

  • 여러개의 결정트리 출력을 앙상블하는 방법
  • 결정 트리 학습에 기초한 알고리즘으로서 실전에 유용
  • 캐글(Kaggle)이 가장 선호하는 알고리즘

4.3 그래디언트 부스팅 머신(gradient boosting maehine)

  • 여러개의 결정트리 출력을 앙상블하는 방법
  • 빠진 데이터를 보완하는 알고리즘을 반복해서 훈련함으로 머신 러닝을 향상시킴
  • 랜덤 포레스트 성능을 능가.
  • 지각과 인지관련 분야에서, 딥러닝 다음으로 뛰어난 알고리즘

 

5. 딥러닝 - 심층 신경망 (Deep neural network) - 2010년대

  • 2011년 Dan Ciresan가 GPU 심층 신경망으로 이미지 분류 대회 우승
  • 2012년 부터 심층 합성 신경망(deep convolutional neural network, ConvNet)이 이미지 분류, 컴퓨터 비전 작업의 주력이 됨.
  • 다양한 애플리케이션에서 SVM, 결정트리를 완전히 대체하고 있음.
728x90
반응형

+ Recent posts