기계학습이란?

 

어떤 컴퓨터 프로그램이 T라는 작업을 수행한다. 이 프로그램의 성능을 P라는 척도로 평가했을때 경험 E를 통해 성능이 개선된다면 이 프로그램은 학습을 한다고 말할 수 있다.

 

사례 데이터, 즉 과거 경험을 이용하여 성능 기준을 최적화하도록 프로그래밍하는 작업

 

성능을 개선하거나 정확하게 예측하기 위해 경험을 이용하는 계산학 방법들

 

왜 머신러닝인가??

 

인공지능이 탄생하면서 컴퓨터의 뛰어난 능력으로 사람이 어려워하는 일을 아주 쉽게할수있게됨.(곱셈을 고속으로 한다던지, 복잡한 함수의 미분과 적분을 척척함)

컴퓨터에 대한 기대감도 올라감(컴퓨터의 능력 과신)

 

초창기에는 지식 기반 방식이 주로되었음

예)구멍이 2개고 중간부분이 홀쭉하며 맨 위와 아래가 둥근 모양이라면 8이다.

지식기반에서 기계학습으로 인공지능의 주도권이 전화됨. 

이때 기계학습이란 통계적 측면을 고려한 데이터 중심 접근방식

 

과거의 데이터로부터 학습하여 정확한 예측을 하도록 스스로 예측 모델을 만드는 컴퓨터 알고리즘

𝐦𝐢𝐧 |𝓨+ − 𝓨−|

𝓨+: 미래에 더 잘하기위한 것

𝓨−: 과거에 경험한 일

여기서의 일반화문제, 과거 데이터에 최적 알맞게 되면서 경험해 보지 못한것도 정확하게 예측 가능한가?

 

훈련집합

가로축은 특징, 세로축은 목표치

관측한 점들이 훈련집합을 구성함.

무엇이 더 좋은 모델(수식)인가?

 

y=mx+b 어떤 m,b값을 선택해야 현재 데이터를 잘 묘사하는 모델이 나올까?

 

데이터를 어떻게 모델링할 것인가

눈대중으로 보면 직선을 이루므로 직선을 선택하자 -> 모델로 직선을 선택한 셈

직선 모델의 수식(2개의 매개변수 w와 b)

y= wx + b

기계학습은 가장 정확하게 예측할 수 있는, 즉 최적의 매개변수를 찾는 작업

처음엔 최적값을 모르므로 임의의 값에서 시작해서 점점 성능을 개선하여 최적에 도달

 

학습을 마치면 예측에 사용됨

최적의 매개변수를 w=0.5 b=2.0이라고하면 

예) 10.0 순간의 이동체 위치를 알고자하면 y=0.5x+2.0가 모델 수식이니까 x에 10을 넣어주면 y는 7.0이라 예측함.

이 기계학습의 궁극적인 목표는 훈련집합에 없는 새로운 샘플에 대한 오류를 최소화하는것

테스트 집합에 대한 높은 성능을 일반화 능력이라부름

 

수학적 방법론에 따른 기계학습 방법 구분

오차를 줄여가는 방식의 기계학습이 현대 딥러닝의 근간임

 

뉴럴 네트워크(신경망)

 

모수화된 예측모델은 랜덤 모수의 집합으로 초기화됨.

오류 함수는 훈련 데이터 세트에서 사례에 대한 예측을 할때 이 초기 모델이 얼마나 잘 수행되는지 판단하는데 사용됨.

오류 함수 값을 기반으로 매개변수가 반복적으로 조정되어 보다 정확한 모델이 생성됨

 

지도학습의 표기법

학습 알고리즘 - 선형 회귀 분석

목표: 주어진 교육 세트에 가장 적합한 매개 변수 찾기

 

선형 회귀 분석이란?

y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b

여기서 x₁, x₂, ..., xₙ은 입력 변수의 특성(feature)이고, w₁, w₂, ..., wₙ은 해당 특성들의 가중치(weights)를 나타냅니다. b는 편향(bias)으로, 모델의 출력에 영향을 미치는 상수입니다. 목표는 주어진 데이터를 기반으로 적절한 가중치와 편향 값을 학습하는 것입니다.

 

파라미터가 얼마나 좋은지  측정

 

사무실 임대 데이터 세트의 크기 및 임대 가격 특징에 대한 산점도.
• 가능한 단순 선형 회귀 모델의 모음도 표시됩니다.
• 모든 모델에서 w[0]은 6.47로 설정됩니다.
• 위에서 아래로 모델은 w[1]에 대해 각각 0.4, 0.5, 0.62, 0.7 및 0.8을 사용합니다.

 

 

좋은 모델을 선별할 수 있는 조건은 원래 데이터와 오차가 어떻게 되는지 분석하는 것임.

목표: 주어진 교육 세트에 대한 비용 함수 최소화

 

그래서 어떻게 해결을 할까?

오차제곱합

 

x-y평면을 가중치 공간이라고 합니다.

표면을 오류 표면이라고 합니다.

교육 데이터에 가장 적합한 모형은 오차 표면의 최저점에 해당하는 모형입니다.(best fit)

 

최저점 - 최고의 fit

 

오차 표면의 최저점에 대한 공식적인 정의

이 점을 찾는 방법은 여러 가지가 있습니다.
•가장 유명하고 인기 있는 것은 경사 하강 알고리즘으로 알려진 안내 검색 접근 방식입니다(경사 하강법)

 

경사 하강법을 사용한 다변량 선형 회귀 분석

다변량 선형 회귀 모형

L2 손실(오차 제곱의 합)

범주형 특징 처리

의사 결정 경계

 

rpm 및 진동 형상의 산점도

삼각형은 결함이있고, 십자가는 좋음

 

의사결정 표면

오류표면의 기울기를 어떻게 계산할수있을까? 

항상 신뢰 예측(0또는 1)보다 민감한 예측이 바람직함.

 

매개 변수화된 분류자

로지스틱 함수 또는 시그모이드 함수

형식의 로지스틱 회귀 분석

weights: 선형 회귀 분석

 

로지스틱 회귀분석

• 분류 문제에 선형 회귀 모델을 사용할 수 있을까?
• 그렇다면 실제 값의 응답을 이진수에 매핑하는 방법은 무엇일까?
• 'Sigmoid' 기능 사용
• Sigmoid 지도는 [0, 1]에 해당합니다
• 파생상품

생성기 데이터 집합 예제

새로운 weight 업데이트 규칙

 

순수 수학 최적화와 기계 학습 최적화의 차이

 

기계  학습의 최적화는 단지 훈련집합이 주어지고, 훈련집합에 따라 정해지는 목적 함수의 최저점을 찾아야함

데이터로 미분하는 과정 필요 -> 오류 역전파 알고리즘

주로 SGD(스토캐스틱 경사 하강법)사용

 

매개변수공간의 탐색

학습 모델의 매개변수 공간

높은 차원에 비해 훈련집합의 크기가 작아 참인 확률 분포를 구하는 일은 불가능함

 따라서 기계 학습은 적절한 모델을 선택하고, 목적 함수를 정의하고, 모델의 매개변수 공간을 탐색하여 목적 함수가 최저가 되는 최적점을 찾는 전략 사용 -> 특징 공간에서 해야하는 일을 모델의 매개변수 공간에서 하는일로 대치한 셈

 

학습 모델의매개변수 공간 - 특징 공간보다 수배_수만배넓음

선형회귀에서 특징공간은 1차원, 매개변수 공간은 2차원 

mnist인식하는 딥러닝 모델은 784차원 특징공간, 수십만~수백만 차원의 매개변수 공간

이 그림의 개념도의 매개변수 공간 x^는 전역 최적해 x2와 x4는 지역 최적해

x2와 같이 전역 최적해에 가까운 지역 최적해를 찾고 만족하는 경우 많음

기계학습이 해야 할 일을 식으로 정의하면,

 

최적화 문제 해결

 

낱낱 탐색 알고리즘

차원이 조금만 높아져도 적용 불가능

예) 4차원 iris에서 각 차원을 1000구간으로 나눈다면 총 1000^4개의 점을 평가해야함

무작위 탐색 알고리즘

아무 전략이 없는 순진한 알고리즘

기계학습이 사용하는 전형적인 탐색 알고리즘

라인 3에서는 목적함수가 작아지는 방향을 주로 미분으로 찾아냄

 

경사 하강 알고리즘

 

배치 경사 하강 알고리즘

샘플의 그레이디언트를 평균한 후 한꺼번에 갱신

스토캐스틱 경사 하강 알고리즘

한 샘플의 그레이디언트(경사)를 계산한 후 즉시 갱신

라인 3~6을 한번 반복하는 일을 한 세대라 부름

 

다른방식의 구현으로는

 

퍼셉트론

구조: 입력층과 출력층을 가짐

입력층은 연산을 하지 않으므로 퍼셉트론은 단일 층 구조라고 간주

입력층의 i번째 노드는 특징벡터 x=(x1,x2,...,xd)^T의 요소 xi를 담당

항상 1이 입력되는 바이어스 노드

출력층은 한 개의 노드

i번째 입력층 노드와 출력층을 연결하는 에지는 가중치 wi를 가짐.

동작

해당하는 특징값과 가중치를 곱한 결과를 모두 더하여 s를 구하고, 활성함수 t를 적용

활성함수 t로 계단함수를 사용함으로 최종출력 y는 1또는 -1

 

2차원은 결정직선, 3차원은 결정 평면, 4차원이상은 결정 초평면

 

학습문제

지금까지는 학습을 마친 퍼센트론을 가지고 동작을 설명했는데

w1과 s2,w0가 어떤 값을 가져야 100% 옳게 분류할까?

그림에서는 2차원 공간에 4개의 샘플이 있는 훈련집합이지만 현실 세계는 d차원인 공간에 수백~수만개의 샘플이 존재

(예 mnist는 784차원에 6만개 샘플)

 

그렇다면 이 문제에서 어떻게 학습을 시킬것인가?

목적함수 설게

퍼셉트론의 매개변수를 w=(w0,w1,w2,....,wd)^T라고 표기하면 매개변수 집합은 @={W}

목적 함수를 J(@)또는 J(W)로 표기함

목적함수의 조건

J(W) >=0이다.

W가 최적이면 즉, 모든 샘플을 맞히면 J(W) =0이다.

틀리는 샘플이 많은 W일수록 J(W)는 큰값을 가진다.

이 식은 위에 세가지 조건을 만족하므로 퍼셉트론의 목적함수로 적합함(Y는 W가 틀리는 샘플의 집합)

왜 적합할까?

Y는 W가 틀리는 샘플의 집합임

Xk가 Y에 속한다면? 퍼셉트론이 계산한 𝐰^𝐓𝐱𝑘와 𝐱𝑘의 클래스를 뜻하는 𝑦𝑘는 부호가 달라야 함(원래 정답은 1 퍼셉트론의 예측이 틀렸다면 그 값은 -1이 되어야함. 클래스를 1,-1로 정의했다면)

이 조건을 만족하면 −𝑦𝑘 (𝐰^𝐓𝐱𝑘 )는 항상 양수

Y가 클수록 틀린 샘플이 많을수록 J(W)는 큰 양의 값을 가짐

만일 Y가 공집합이면? 모든 샘플을 맞힐 때이므로 값은 0이 나올것

 

그레이디언트 계산

가중치 갱신 규칙 𝚯 = 𝚯 − 𝜌𝐠를 적용하려면 그레이디언트 𝐠가 필요

이 식을 편미분하면,

이 편미분 결과를 가중치 갱신 규칙 𝚯 = 𝚯 − 𝜌𝐠 이 식에 대입하면,

 

퍼셉트론 학습 알고리즘

이 위에 방금 구한 식을 이용하여 학습 알고리즘을 쓰면

훈련집합의 샘플을 모두 맞출때까지 세대(라인3~9)를 반복함.

 

퍼셉트론 학습 알고리즘의 스토캐스틱 버전

 

다층 퍼셉트론

퍼셉트론은 선형 분류기라는 한계

선형 분리가 불가능한 밑에같은 상황에서는 일정한 양의 오류

예) XOR문제에서는 75퍼센트가 정확률 한계

 

민스키의 퍼셉트론

퍼셉트론의 한계를 지적하고 다층구조를 이용한 극복 방안 제시. 당시 기술로 실현 불가능

1974년 웨어보스는 박사 논문에서 오류 역전파 알고리즘 제안.

1986년 루멜하트의 저서에서  다층 퍼셉트론 이론 정립하여 신경망 부활

 

다층 퍼셉트론의 핵심 아이디어

 

은닉층을 둔다. 은닉층은 원래 특징 공간을 분류하는 데 훨씬 유리한 새로운 특징 공간으로 변환한다.

시그모이드 활성함수를 도입한다. 퍼셉트론은 계단함수를 활성함수로 사용하였는데 이 함수는 경성 의사 결정에 해당한다.

반면 다층 퍼셉트론은 연성 의사결정이 가능한 시그모이드함수를 활성함수로 사용한다.

연성에서는 출력이 연속값인데 출력을 신뢰도로 간주함으로써 더 융통성있게 의사결정을 할수있다

오류 역전파 알고리즘을 사용한다. 다층 퍼셉트론은 여러 층이 순차적으로 이루어진 구조이므로, 역방향으로 진행하면서 한번에 한층씩 그레이디언트를 계산하고 가중치를 갱신하는 방식의 오류 역전파 알고리즘을 사용한다.

 

특징 공간 변환

퍼셉트론 2개를 사용한 XOR문제의 해결

퍼셉트론 1과 퍼셉트론 2가 모두 +!이면 동그라미 부류이고 그렇지 않으면 네모 부류임

 

특징 공간 변환

퍼셉트론 2개를 병렬로 결합하면,

원래공간 X=(X1,X2)^T를 새로운 특징 곤간 Z=(Z1,Z2)^T로 변환

새로운 특징 공간 Z에서는 선형 분리 가능함.

 

 

퍼셉트론 1개를 순차 결합하면, 

새로운 특징 공간 Z에서 선형 분리를 수행하는 퍼셉트론3을 순차 결합하면, 다층 퍼셉트론이됨.

 

다층 퍼셉트론의 용량

3개의 퍼셉트론을 결합하면, 2차원 공간을 7개 영역으로 나누고 각 영역을 3차원 점으로 변환

활성함수 t로 계단함수를 사용하므로 영역을 점으로 변환

일반화하여, p개 퍼셉트론을 결합하면 p차원 공간으로 변환

 

 

활성함수

 

딱딱한 공간 분할과 부드러운 공간 분할

계단함수: 딱딱한 의사결정(영역을 점으로 변환)

나머지 활성함수: 부드러운 의사결정(영역을 영역으로 변환)

 

구조

입력층-은닉층-출력층의 2층 구조

d+1개의 입력노드(d는 특징의 개수), c개의 출력노드(c는 부류개수)

p개의 출력노드: p는 하이퍼 매개변수( 사용자가 정해주는 매개변수)

p가 너무 크면 과잉적합, 너무 작으면 과소 적합 

b는 입력층-은닉층-은닉층-출력층의 3층 구조

 

다층퍼셉트론의 매개변수(가중치)

입력층-은닉층을 연결하는 U1(𝑢𝑗𝑖^1 은 입력층의 i번째 노드를 은닉층의 j번째 노드와 연결)

은닉층-출력층을 연결하는 U2 (𝑢𝑘𝑗^2 는 은닉층의 j번째 노드를 출력층의 k번째 노드와 연결)

 

일반화하면 𝑢𝑗𝑖^𝑙 은 l-1번째 은닉층의 i번째 노드를 l번째 은닉층의 j번째 노드와 연결하는 가중치

입력층을 0번째 은닉층, 출력층을 마지막으로 간주

특징 벡터 X를 출력벡터 O로 매핑하는 함수로 간주할 수 있음

노드가 수행하는 연산을 구체적으로 쓰면, 

𝐮𝑗^1은 j번째 은닉 노드에 연결된 가중치 벡터 (식 (3.11)의 𝐔 1의 j번째 행) 

𝐮𝑘^2는 k번째 출력 노드에 연결된 가중치 벡터 (식 (3.11)의 𝐔 𝟐의 k번째 행)

 

다층 퍼셉트론의 동작을 행렬로 표기하면

 

은닉층은 특징 추출기

은닉층은 특징 벡터를 분류에 더 유리한 새로운 특징 공간으로 변환

현대 기계 학습에서는 특징학습이라함

 

오류 역전파 알고리즘

 

목적함수의 정의

훈련집합

특징벡터 집합 𝕏 = {𝐱1, 𝐱2, ⋯ , 𝐱𝑛} 과 부류 벡터 집합 𝕐 = {𝐲1, 𝐲2, ⋯ , 𝐲𝑛}

부류 벡터는 원핫 코드로 표현됨. 즉 𝐲𝑖 = (0,0, ⋯ , 1, ⋯ , 0)^T

설계 행렬로 쓰면,

기계학습의 목표

모든 샘플을 옳게분류하는 함수f를 찾는일

평균 제곱 오차로 정의

식 3.21를 알고리즘 형태로 쓰면,

 

 

feedforward and backpropagation

 

원칙


계산 기능(예: net, 활성화 기능)으로 forward
가중치 결정에 적용되는 구배를 계산하려면 backward

순전파와 역전파를 통해 딥러닝 학습

순전파는 주어진 데이터를 이용하여 결과를 예측

역전파는 결과의 오차를 이용하여 웨이트를 업데이트

 

역전파 알고리즘

1. 오차를 뒤로 보내어 웨이트를 업데이트하고

2. 업데이트된 웨이트로 다시 결과를 예측

3. 결과 예측과 데이터 사실 값의 오차가 0이 되도록 하는 것이 목표

4. 1~3과정을 반복하여 학습을 진행 - 최적 웨이트 찾는 최적화 과정

 

손실의 기울기

 

제곱 오차를 최소화 시킬 수 있는 값을 찾는 것이 목적

미분을 통해 제곱 오차 최소로 하는 값을 손쇱게 구해보자

+ Recent posts