Skip to content
Home » 머신 러닝 미적분 | [머신러닝] 컴퓨터가 학습을 하는 원리 11 개의 정답

머신 러닝 미적분 | [머신러닝] 컴퓨터가 학습을 하는 원리 11 개의 정답

당신은 주제를 찾고 있습니까 “머신 러닝 미적분 – [머신러닝] 컴퓨터가 학습을 하는 원리“? 다음 카테고리의 웹사이트 hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: hu.taphoamini.com/photos. 바로 아래에서 답을 찾을 수 있습니다. 작성자 컴맹이 해커가 되기까지 이(가) 작성한 기사에는 조회수 137,907회 및 좋아요 1,790개 개의 좋아요가 있습니다.

Table of Contents

머신 러닝 미적분 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [머신러닝] 컴퓨터가 학습을 하는 원리 – 머신 러닝 미적분 주제에 대한 세부정보를 참조하세요

머신 러닝 미적분 주제에 대한 자세한 내용은 여기를 참조하세요.

[DataScience] 머신러닝을 위한 미분 ( feat. 평균변화율 – 코딩일기

결론부터 말씀드리면, (미분)함수를 통해 해당 머신러닝의 성능평가를 진행하게 됩니다. 정말 단순화하여 설명드려보겠습니다. 위 2차 그래프에서 극소점 …

+ 여기에 표시

Source: daje0601.tistory.com

Date Published: 7/18/2022

View: 9908

16. 머신러닝에서 주로 사용하는 수학 소개 – 브런치

머신러닝에서의 수학 인공지능 중에서 주로 데이터를 처리하는 머신러닝에 … 바로 선형대수학(Linear Algebra)과 다변수 미적분학(Multivariable …

+ 여기에 보기

Source: brunch.co.kr

Date Published: 1/16/2022

View: 7222

머신러닝 신경망에서 미분이 필요한 이유 – Dev log

미분이 필요한 이유는 기존의 가중치를 갱신하기 위해서 사용합니다. 하지만 진정한 미분은 컴퓨터로 구현하기 어렵기 때문에 중앙 차분 오차가 발생 …

+ 더 읽기

Source: kejdev.tistory.com

Date Published: 2/8/2021

View: 5407

인공지능 기초 2) 머신러닝과 미적분, 그래디언트 디센트

이번 포스트는 머신러닝을 이해하는데 필요한 미적분 지식을 제공합니다. ​. 제가 느끼기엔 머신러닝을 수학으로 나타내는 데 있어서 가장 좋은 도구 …

+ 여기에 더 보기

Source: m.blog.naver.com

Date Published: 10/21/2021

View: 3563

머신러닝, 딥러닝에 필요한 기초 수학 – 미분

머신러닝, 딥러닝에 필요한 기초 수학 4장 – 변화율과 도함수학습모델의 에러가 2차 함수 형태일 경우, 도함수를 통해 최솟값을 구하는 과정에 적용할 …

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 12/5/2021

View: 9720

[딥러닝 입문 – 2] 머신 러닝에 사용되는 수학 – 두우우부

… 회에 걸쳐 딥러닝을 포함한 머신 러닝에 필요한 수학의 기초로 ‘미분’, … 그 전에, 이 장에서는 기계 학습(machine learning)의 개념에 대해 큰 …

+ 여기에 표시

Source: doooob.tistory.com

Date Published: 5/30/2022

View: 7717

머신 러닝을 위한 수학 with 파이썬, R: 3.4.1 미적분학의 기본정리

우선 미적분학의 기본정리를 이해하려면 먼저 평균값 정리를 살펴봐야 한다. 평균값 정리는 미분 가능한 함수의 그래프에서 시작한다. 평균값 정리에 따르면 그래프 위, …

+ 더 읽기

Source: thebook.io

Date Published: 6/7/2021

View: 935

토론실 – 머신러닝과 미적분 그리고 분류와 차원

머신러닝을 이해함에 있어 미분을 꺼내든 이유는 그게 머신러닝의 핵심이기 때문이다. “어떤 결과가 있는데 그 결과의 원인이 뭐지?”를 미적분으로 정형화 …

+ 여기에 자세히 보기

Source: gujoron.com

Date Published: 7/11/2021

View: 1118

주제와 관련된 이미지 머신 러닝 미적분

주제와 관련된 더 많은 사진을 참조하십시오 [머신러닝] 컴퓨터가 학습을 하는 원리. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[머신러닝] 컴퓨터가 학습을 하는 원리
[머신러닝] 컴퓨터가 학습을 하는 원리

주제에 대한 기사 평가 머신 러닝 미적분

  • Author: 컴맹이 해커가 되기까지
  • Views: 조회수 137,907회
  • Likes: 좋아요 1,790개
  • Date Published: 2017. 5. 14.
  • Video Url link: https://www.youtube.com/watch?v=ZY6eBxyEOq0

[DataScience] 머신러닝을 위한 미분 ( feat. 평균변화율 -> 순간변화율 )

안녕하십니까 다제입니다.

오늘은 머신러닝을 위한 반드시 알아야할 미분에 대해서 알아보도록 하겠습니다.

먼저 미분이 왜 필요한지?? 미분은 무엇인지?? 에 대해 이야기를 해야할 거 같아요~

머신러닝에서 미분의 필요성

우리는 머신러닝이 경험을 통해 특정 작업에 대한 성능이 좋아지는 프로그램이라는 것을 알고 있습니다.

그렇다면 해당 머신러닝의 성능이 좋은지 안좋은지를 어떻게 알 수 있을까요?

결론부터 말씀드리면, (미분)함수를 통해 해당 머신러닝의 성능평가를 진행하게 됩니다.

정말 단순화하여 설명드려보겠습니다.

위 2차 그래프에서 극소점으로 내려갈수록 성능이 좋아진다고 가정해보겠습니다.

그렇다면 현재 위치를 확인한 후 극소점이 있는 방향으로 가야겠지요?

이때 기울기를 가지고 덜 가파른 지점으로 이동을 하게 됩니다.

(일반적으로 성능이 좋은 지점이 극소점, 극대점인 경우가 많습니다.)

머신러닝의 성능을 판단하기 위해서 우리는 미분을 알 수 밖에 없겠죠?

아무리 좋은 기능이더라도 요즘은 느리면 안쓰고, 빠른데 부정확하다 생각되면 없어지는 세상입니다..

바르게 공부하여 효율적인 머신러닝을 함께 만들어 보시죠!

자! 충분히 우리가 미분을 배우게 될 이유는 알았고 이제부터

천천히 미분을 공부해볼까 합니다! 제 글을 정독해 보니 딱 10분이면 가능했습니다.

바로 고고고!

우리는 그 동안 pandas를 통해 직선그래프를 쭉~ 연습해왔습니다.

이런 직선그래프의 기울기 보면서 얼마나 빠르게, 얼마만큼 변했는지를 한 눈에 볼 수 있었습니다.

1. 곡선그래프 기울기 구하기

그런데,, 두둥 이런 곡선 그래프에서는

기울기를 어떻게 알 수 있을까요? 음.. 고민이 되시죠?

지금까지 직선만 봤는데… 이때 미분이 필요합니다!

1) 일단, a에서 b로 직선을 하나 그어볼까요?

2) 두 점에 대한 기울기는 f(b) – f(a) / b – a라고 기재할 수 있고 우리는 이를 평균변화율이라고 부릅니다.

3) 그리고 a부터 b까지의 길이를 h라고 정의해 보겠습니다.

4) 우리는 b를 b = a + h 정의할 수 있고 그래프도 이렇게 바꿀 수 있습니다.

5) 기울기를 f(a+h) – f(a) / h로 바꿀 수 있습니다.

6) 그럼 h가 점점 줄어든다고 가정해볼까요? 그러다가 a와 아주 근접하게 되며

a의 순간변화율을 구할 수 있게 됩니다.

7) 이렇게 함수의 “특정 지점의 순간적인 변화를 구하는 방법”을 미분이라고 합니다.

그런데 매번 이렇게 미분을 구할 수가 없으니

아래와 같이 간단하게 미분을 진행할 수 있습니다.

2. 간단한 미분 방법 & 기울기의 의미

1) 차수를 그대로 변수 앞으로 내린다.

2) 내린 차수는 -1을 해주고 기존 차수 위치에 기재한다.

y = x^2 – 2x + 1 -> y = 2x – 2

혹시 이해가 안되신다면 유튜브에 간단한 미분이라고 검색하시면 훨씬 쉽게 이해하실 수 있습니다.

저도 쉽게 이해시켜드리기 위해 노력하나… 기술이 부족하여….

자 그럼 이렇게 기울기를 구하여 우리는 어디에 사용할 수 있을까요?

1. 그래프가 해당 지점에서 얼마나 기울어져 있는지 2. 어떤 방향으로 가야 가장 가파르게 올라갈 수 있는지 -> 성능평가에 사용

3. 극소점 & 극대점 & 안장점

순간변화율이 0인 지점은 아래와 같이 크게 3종류로 나뉠 수 있습니다.

보통 위 점들이 머신러닝의 최적화 지점이 되는 경우가 많다.

극소점 : 주위의 모든 점의 함숫값 이하의 함숫값을 갖는 점

극대점 : 주위의 모든 점의 함숫값 이상의 함숫값을 갖는 점

안장점 : 어느 방향에서 보면 극대값이지만 다른 방향에서 보면 극소값이 되는 점

https://ko.wikipedia.org/wiki/%EA%B7%B9%EA%B0%92

4. 다변수함수의 미분

지금까지는 input 변수가 1개인 경우를 살펴보았습니다.

이제 input 변수가 두개인 경우를 살펴보겠습니다.

input 변수가 x,y로 두가지인 경우 편미분을 해야합니다.

편미분이란? 두 변수 중 하나만 골라서 미분을 하는 것을 말합니다.

f(x, y) = x^2 + y^2라고 한다면

x에대한 편미분

x 외에 다른 변수를 상수항 취급함 -> f(x, y) = 2x

y에 대한 편미분

y 외에 다른 변수를 상수항 취급함 -> f(x, y) = 2y

이렇게 산출된 편미분을 백터에 넣어주면 해당 백터가 다변수함수의 기울기가 된다

또한, 이 기울기는 가장 가파르게 올라갈 수 있는 방향을 알려주게 된다.

자! 최종적으로 정리를 해보면 우리는 미분을 통해서

극소점, 극대점, 안장점, 기울기 가파른 방향을 알 수 있습니다.

위와 같은 수학적 개념을 이용하여

머신러닝의 성능평가와 최적화를 할 수 있다!

그래서 미분에 대한 정확한 이해가 필요하다고만 알아주시면 됩니다.

공부하시다가 모르시는 부분이 있으시면 댓글 부탁드립니다!

오늘도 방문해주셔서 감사합니다.

728×90

머신러닝 신경망에서 미분이 필요한 이유

신경망이라는 것을 접하면서 미분, 기울기와 같은 말을 몇번 들어봤습니다.우리는 왜 미분을 사용하는 것인지, 미분이 필요한 이유와 도함수를 Python 으로 간단하게 구현해보도록 하겠습니다.

미분이 필요한 이유

미분이 필요한 이유는 기존의 가중치를 갱신하기 위해서 사용합니다.

하지만 진정한 미분은 컴퓨터로 구현하기 어렵기 때문에 중앙 차분 오차가 발생합니다. 그래서 컴퓨터로 미분을 구현하기 위해서는 수치 미분을 사용해야 합니다.

함수 y=f(x)에 대해서 x가 x0에서 x0+h 로 변화할 때, y의 값은 f(x0+h)로 변화한다고 할 때, 평균 변화율은 아래와 같습니다.

그림을 보면 h가 서서히 0으로 다가가면 할선은 접선으로 다가갑니다.

이를 코드로 구현하려면 h가 되었을때가 진정한 미분이라고 할수 있는데, 아까 말했던 것과 같이 컴퓨터로는 진정한 미분을 구현하는 것은 어렵습니다. 왜냐하면 h가 0이 될 수 없기 때문입니다. 그래서 h를 0.0001로 두고 수치미분을 합니다.

수치 미분

함수 이름은 numerical_diff 라고 짓겠습니다. 위의 공식을 보고 그대로 만들면 되기 때문에 간단하게 함수를 구현할 수 있습니다.

def numerical_diff(f,x): h=0.001 return (f(x+h)-f(x-h)) / (2*h)

위의 미분 함수를 이용하여 f(x)=x^2 + 4^2 함수를 미분하고 x=4에서의 미분계수(기울기)를 구해보겠습니다. 2x + 0 상수는 도함수가 되면 0이 되고, 2*4 = 8 이 됩니다.

def samplefunc1(x): return x**2 + 4**2 print(numerical_diff(samplefunc1,4))

결과 값을 출력하면 8이 나오지 않고 근사치가 나오는 것은 수치미분이기 때문에 중앙 차분 오차가 발생하기 때문입니다.

import numpy as np import matplotlib.pylab as plt def samplefunc1(x): return x**2 + 4**2 x = np.arange(0.0, 20.0, 0.1) y = samplefunc1(x) plt.plot(x,y) plt.show()

여기에 도함수 그래프를 넣어 겹쳐서 보겠습니다.

import numpy as np import matplotlib.pylab as plt def numerical_diff(f,x): h=0.001 return (f(x+h)-f(x-h)) / (2*h) def samplefunc1(x): return x**2 + 4**2 def afterfunc(x): return numerical_diff(samplefunc1,4)*x x1 = np.arange(-10.0, 20.0, 0.1) y1 = samplefunc1(x1) plt.plot(x1,y1) x2= np.arange(-10.0, 20.0, 0.1) y2 = afterfunc(x2) plt.plot(x2,y2) plt.show()

인공지능 기초 2) 머신러닝과 미적분, 그래디언트 디센트

로스쿨 준비하는 공대생이 본격 심심한 주말에 푸는 수학이야기.

본 포스트는 최대한 이론서적에 근거하여 작성되었습니다.

이번 포스트는 머신러닝을 이해하는데 필요한 미적분 지식을 제공합니다.

제가 느끼기엔 머신러닝을 수학으로 나타내는 데 있어서 가장 좋은 도구는 ‘선형대수학’이라고 하는 도구입니다.

데이터의 속성을 잘 분석하고 표현하는 수학적 표현법이며, 직관적으로 문제를 분석할 수 있기 때문입니다.

문제를 분석하는 선형대 수학이 아닌 다른 방법도 많은데, 그 중 하나가 Vector Calculus입니다. 일반적인 ‘함수’라는 개념으로 이해하는 방법이죠.

공대생은 공학수학이라는 과목에서 다루기도 하며, 고등학교에서 배우는 미적분을 작 익혔다면 아주 쉽게 익힐 수 있습니다.

vector function이 무엇인지 부터, Gradient descent에 쓰이는 Gradient가 무엇인지 알아보도록 하겠습니다.

일단 벡터는 숫자의 쌍이라고 정의하고 시작하겠습니다.(물론 크기와 방향을 가진 것으로 정의하기도 합니다.)

예를 들어 vector v1=(2,3)과 같은 벡터가 있을때 v1의 첫번째 성분(x성분)은 2, 두번째 성분(y성분)은 3을 나타냅니다.

1. 벡터 함수, vector function

Vector function은 벡터로 함수를 정의하는 방법입니다.

예를들어 C라는 곡선이 있을때 x에 대한 y의 함수를 정의하면 y=f(x)가 될 것입니다.

하지만 우리는 t라는 파라미터(x와 y를 매개하는 변수)를 도입하여 함수를 나타낼 수도 있습니다.

x=f(t), y=g(t)처럼 말입니다. 이 뜻은 새로운 변수(변하는 수) t로 x,y를 표현했다는 것입니다. 이때 곡선 C는 parametric curve라고 합니다.

그렇게 되면 아래 그림처럼 각 x,y 쌍이 t에 대해 정의되며, t에 값을 대입하며 모든 (x,y)쌍을 나타낼 수 있습니다.

2] 머신 러닝에 사용되는 수학

반응형

다음 장부터 3회에 걸쳐 딥러닝을 포함한 머신 러닝에 필요한 수학의 기초로 ‘미분’, ‘선형 대수학’, ‘확률 통계’의 3가지에 대한 요점을 짧게 소개하겠습니다.

그 전에, 이 장에서는 기계 학습(machine learning)의 개념에 대해 큰 틀을 잡고, 어느 부분에서 각 항목이 등장하는지 파악해 둡시다.

2.1 기계 학습이란?

기계 학습은 주어진 데이터에서 알 수 없는 데이터에 대하여 특정 규칙이나 패턴을 추출하고, 이를 바탕으로 미지의 데이터를 분류하거나 예측하는 방법을 연구하는 학문 영역입니다. 기계 학습은 다양한 기술에 응용되고 있으며, 예를 들어 화상 인식, 음성 인식, 문서 분류, 의료 진단, 스팸 메일 탐지, 상품 추천 등 다양한 분야에서 중요한 역할을 하고 있습니다.

2.2. 지도 학습의 개념

기계 학습의 대표적인 문제 설정으로 지도 학습(supervised learning)이라는 것이 있습니다. 이것은 문제에 대한 답을 미리 준비해두고, 예상된 응답과 실제 응답의 간극이 작아지도록 훈련하는 방법입니다.

좀 더 구체적으로 설명하면, 아래 그림처럼 빨간 점들의 모임이 있다고 합시다.

이 그림은 가로축이 x축, 세로축이 t축입니다. 이 빨간 점 하나하나는 x와 t가 만나는 점을 나타냅니다. 그림에서 x=0 부근에서는 t도 0 부근의 값이 많은 듯합니다. 또한, x=200 부근에서는 t는 40 전후의 값을 취하고 있는 것 같습니다. 그럼 x=−400 일 때, t는 어떤 값을 가질까요?

이와 같이, 주어진 데이터에서 관계를 예상하여 미지의 데이터에 대해서도 더 좋은 전망을 세우는 것이 지도 학습의 대표적인 목표 중 하나입니다.

2.2.1 직선에 의한 근사

그렇다면 다음과 같은 직선의 방정식을 생각해 봅시다.

f(x) = wx + b

이것은 하나의 입력 x가 주어지면 하나의 출력을 반환하는 함수 f를 나타내고 있고, 이 함수는 기울기 w와 절편 b의 2개의 파라미터로 특징지어져 있습니다. 위의 그림 w=0.5, b=50인 경우를 나타냅니다. 여기서 첫 그림에 있던 빨간 점의 군집에서 보이는 x와 t의 관계를, f(x) = wx + b 직선에 의해 근사하는 것을 생각해 봅시다.

이 직선을 빨간 점 위에 겹쳐보면 다음과 같이 됩니다.

그다지 x와 t의 관계를 잘 나타내고 있는 것 같지 않습니다.

식 f(x) = wx + b로 표현되는 직선은 w와 b가 결정되면, 어떤 직선이 될지 결정됩니다. 즉, w와 b 값을 잘 결정하여 빨간 점의 모임에 최대한 근접한 직선을 찾을 수 있다면, 새로운 x가 주어졌을 때 t값이 어떻게 될지 예측이 가능합니다. 이때, 미지의 데이터에 대해서도 정밀하게 예측이 가능한 것을 일반화 성능(generalizability)이 높다고 합니다.

또한 매개 변수 w와 b에 의해 특징지어진 직선의 방정식 f(x) = wx + b처럼, 매개 변수를 사용하여 어떤 계산을 실시하는 것으로, 주어진 데이터의 특징과 관계성을 나타내는 것을 이후, 간단히 모델 (model)이라고 부르겠습니다.

그럼 x와 t의 관계를 잘 나타내는 모델의 매개 변수 w와 b는 어떻게 결정하면 좋을까요. 아까처럼 빨간 점의 모임을 눈으로 보고 x와 t의 관계에 이유를 달아 최적의 w와 b의 값을 사람 손으로 직접 찾아서 맞히는 일은, 만약 붉은 점이 3차원 공간과 4차원, 5차원… 같이 고차원 공간에 흩어진다면, 눈으로는 쫓을 수 없기 때문에 매우 곤란해집니다. 그래서 컴퓨터에 이 빨간 점 데이터를 주고 자동으로 최적의 w와 b를 찾도록 하는 것이 기계 학습에서 이루어지는 대표적인 처리 중 하나입니다.

2.3 목적 함수

컴퓨터가 좋은 파라미터(매개 변수)를 자동으로 찾아내기 위해서는 무엇이 좋은 매개 변수인가라는 지표를 정의해야 합니다. 이러한 지표를 나타내는 함수를 목적 함수(objective function)라고 합니다.

여기에서 위 직선의 예로 다시 생각해 봅시다. 우선, 식 f(x) = wx + b에 있는 x를 주고, w와 b를 사용하여 wx+b라는 계산이 이루어집니다. 그 결과를 y로 나타낼 수 있습니다.

여기에서 x를 입력 변수(input variable), y를 출력 변수(output variable)라고 합니다.

이제 위 그림의 빨간 점의 집합 중 하나의 점을 골라 그 x좌표 값을 식 f(x) = wx + b에 적용해 봅시다.

이때, 식에 주어진 구체적인 x값을 입력값(input value)이라고 합니다.

그리고 매개 변수 w와 b를 이용한 계산 결과로 얻어지는 구체적인 y값을 예측값(predicted value)이라고 합니다.

이때, 실제 빨간 점이 갖는 t값은, 이 식이 예측하고자 하는 목표 값이므로 목표값(target value)이라고 합니다.

목적 함수는 종종 모델의 예측값과 목표값을 받고 그 사이의 차를 측정하여 반환하는 함수입니다. 차이는 작을수록 모델의 예측이 맞다는 것을 의미하기 때문에, 이 경우 목적 함수의 값을 최소화하는 파라미터를 찾는 것이 목적입니다.

2.3.1 제곱 오차 함수

목적 함수의 구체적인 예를 들겠습니다.

예를 들어, 적당히 빨간 점을 하나 선택하고, 그 x좌표가 100이고, t좌표가 40이었다고 합시다. 이 값을 x1=100, t1=40 으로 둡니다. 그리고 다른 점도 가져와서 좌표값 (x,t)를 (x2,t2)라고 쓰기로 합니다. 같은 방법으로 200개의 빨간 점을 가져왔다면 200개의 x값 x1,x2,…,x200 과 t1,t2,…,t200을 얻을 수 있습니다.

이 x1,x2,…,x200 에서 t1,t2,…,t200를 예측하는 것이 목표입니다.

즉, x1,x2,…,x200 이 입력값이고, t1,t2,…,t200 이 목표값입니다.

그리고 이 200개의 x의 모든 매개 변수에 대해, 식 f(x) = wx + b에 의한 예측치 y를 계산한 결과, y1,y2,…,y200 이 얻어졌다고 합시다. 이때, 이러한 예측치의 정확도를, 해당 목표값 사이의 차이의 제곱에 의해 측정한 것이 제곱 오차 함수(squared error function)라는 것입니다.

구체적으로는, n개의 예측 값을 yn, 목표치를 tn이라고 하면, 다음과 같은 함수입니다.

이것은 n의 데이터에 대한 예측 값과 목표 값의 차이를 나타냅니다. 그러나 하나의 데이터에 대해서 예측을 잘하더라도, 그 이외의 데이터에 대해 전혀 예측할 수 없다면, 그 모델이 새로운 값에 대해 정확한 예측을 하기가 어렵습니다. 그래서 200개의 데이터에 대하여 이 제곱 오차를 합한 수를 200으로 나눈 평균으로 판단합니다.

∑라는 기호는 합계를 나타냅니다. 위의 식은 (tn – yn)의 제곱값을 n=1부터 순서대로 n=2,n=3,…,n=200 까지 계산하고, 모두 더하여 200으로 나누는 것을 의미합니다.

이것은 평균 제곱 오차(mean squared error)라고 연속 값을 예측하는 회귀 문제에 자주 사용되는 대표적인 목적 함수의 하나입니다. 이 함수는 예측 값과 목표 값이 모든 n에서 완전히 일치할 때만 0이 되고, 그 외에는 반드시 양수 값을 취합니다. 따라서 이 목적 함수의 값을 최소화하는 w와 b가 최적의 매개 변수입니다. 좋은 매개 변수란 무엇인지 정량적으로 정의할 수 있었기 때문에, 다음은 컴퓨터에게 정답을 탐색시키는 방법을 생각해 봅시다.

2.4 목적 함수 최적화

함수를 최소화하는 입력 변수값을 구하는 걸 최적화라고 합니다. 이 최적화를 컴퓨터가 자동으로 하게 하려면 어떻게 해야 할까요?. 예를 들어, 다음과 같은 함수가 있다고 합시다. 가로축이 입력 값, 세로축이 출력값입니다.

이때, 함수에 적당한 값을 먼저 입력해보고 얻은 값을 사용하여 그 값이 작아지는 방향으로 입력값을 조금씩 움직여서 함수가 최소가 되는 값을 찾는 방법이 있습니다.

2.5 기계 학습에 사용되는 수학

이러한 최적화를 수행하는 데 필요한 것이 미분(differential)의 지식입니다. 왜냐하면 ‘입력값을 얼마나 움직이면 출력값이 작아질까’를 알기 위해서는 대상 함수를 미분할 필요가 있기 때문입니다. 자세한 내용은 다음 장에서 설명합니다.

또한 처음에 나온 빨간 점의 군집에 알맞게 직선을 구하는 문제는 하나의 값을 입력하여 하나의 값이 출력되는 함수였습니다만, 여러 값을 동시에 취급할 때 필요한 것이, 선형 대수학(linear algebra)의 지식입니다.

또한 붉은 점이 만일 직선에 딱 맞는 데이터였는데, 관측시에 어떠한 이유로 인하여 노이즈가 생겨버려 직선 주변에 흩어져 있다면, 그 노이즈가 어느 정도의 범위에서 값의 차이를 발생시키는지 알고 싶을 것입니다. 이때, 필요한 것이 확률(probability) · 통계(statistics)의 지식입니다.

이 세 가지에 대해 기계 학습에 필요한 최소한의 지식을 추려서, 이후 3개의 장으로 설명합니다.

다음 장은 우선 미분입니다.

반응형

머신 러닝을 위한 수학 with 파이썬, R: 3.4.1 미적분학의 기본정리

3.4.1 미적분학의 기본정리

우선 미적분학의 기본정리를 이해하려면 먼저 평균값 정리를 살펴봐야 한다. 평균값 정리는 미분 가능한 함수의 그래프에서 시작한다. 평균값 정리에 따르면 그래프 위, 임의의 점 두 개의 기울기와 그 두 점 사이의 어떤 점의 기울기가 같은 것이 적어도 한 개는 존재한다. 평균값 정리는 곡선의 기하학적 특성을 도함수로 표현할 수 있으며, 미적분학의 기본정리를 전개할 때 사용된다.

Note ≡ 평균값 정리 정의 함수 f가 폐구간 [a, b]에서 연속이고 개구간 (a, b)에서 미분 가능하면 개구간 (a, b) 안의 적어도 하나의 점 x 1 이 존재하여 다음이 성립된다. f(b) = f(a) = f ‘(x 1 )(b – a)

그리고 연쇄 법칙을 볼 수 있는데, 연쇄 법칙은 함수 f와 g가 미분 가능한 함수일 때 합성 함수 h = f·g는 미분 가능한 함수이고, 그 도함수는 h'(x) = f ‘(g(x))g'(x)로 나타낼 수 있음을 의미한다.

이제 이 개념을 바탕으로 미적분학의 기본정리(fundamental theorem of calculus)에 대해 살펴보자. 이 정리는 리만 적분을 계산하기 위해 피적분함수 f(x)의 역도함수(antiderivative)인 F(x)를 구하는 것과 관련이 있다.

만약 함수 f가 폐구간 [a, b]에서 연속이고 개구간 (a, b)에서 미분 가능하며 f의 역도함수가 F이면 F의 도함수가 함수 f가 되어 다음과 같이 나타낼 수 있다.

F ‘(x) = f(x)

또한, 함수 F와 함수 f의 관계를 바탕으로 다음과 같이 나타낼 수 있다.

그리고 도함수 f ‘(x)를 나타내는 또 다른 기호로 dy/dx를 사용하며 y = f(x)를 미분하며 dy = df(x) = f ‘(x)dx로 정의된다. 미적분학의 기본정리가 미분과 적분으로 연결된다 정도로 이해하자.

머신러닝과 미적분 그리고 분류와 차원

증거를 보고 범인을 추론할 수 있는가? 그러면 당신은 이미 적분을 알고 있는 것이다.

범인을 보고 증거를 추론할 수 있는가? 그러면 당신은 이미 미분을 알고 있는 것이다.

수학의 핵심은 미적분이라 할 수 있다. 수학 발명 이래 인류가 끊임없이 고민한 단 하나가 바로 미분이다. 시작은 제논 쯤이다. 아킬레스와 거북이의 경주를 보고 말장난을 시작하였다. 이때 제논이 한 말장난은 무엇인가? 바로 차원이다. 언어와 숫자에는 차원이 있는데, 무차원으로 접근하여 말장난을 시전한 게 제논이다. 듣고 있으면 나도 모르게 넘어간다.

구조론의 중핵은 워낙에 여러가지지만 내가 생각하는 중요한 것은 “언어에 차원이 있다”이다. 구조론의 창시자가 언어대마왕인데, 구조론을 제논의 역설에서 크게 착안했다고 하니 왠지 연결이 된다. 근데 “언어에는 차원이 있다”만으로는 이게 왜 중요한지 알기가 어려운게 사실이다. “언어에는 차원이 있지만 티가 나지 않는다.”고 말하면 좀 더 그럴듯하겠다.

자주 드는 예시지만, 2m x 1m = 2m^2(제곱미터) 에서 앞의 2와 뒤의 2는 차원이 다르다고 했다. 내가 단위를 써두었으니 잘 보이지만 구구단에는 쓰질 않는다. 그래, 세상이 그렇게 만만한 게 아니다. 저 단순한 사실에서 깨달음을 얻지 못하고 삽질한 수학의 역사가 2,000년이다. 인간이 2,000년 간 삽질했다면 나름 이유가 있는 것이다.

“언어에 차원이 있다”는 것은 곧 “언어에 의미가 있다”로 연결된다. 근대에 러셀을 비롯한 비트겐슈타인 등이 집요하게 파고들었던 언어철학 분야다. 그러면 언어에 의미가 있다는 것은 무엇인가? 그것은 대상에는 쌍과 배경이 함께 있다는 것이다. 2m의 배경은 2m^2이고 쌍은 1m이다. 즉 2m^2 => 2m x 1m 이다. 순서만 바꿨을 뿐 같은 것이 아니냐고 반문하겠지만, 인간이 멍청해서 착각하는 거고, 이퀄은 방향성이 없는 것이 아니다. 연역과 귀납에 방향성이 있는 것과 정확히 같은 이유로 이퀄에도 방향성이 있다.

특히 적분을 해보면 앞뒤 순서가 왜 의미가 있는지 이해할 수 있다. 상수항을 어떻게 처리할 것이냐에 따라서 정적분과 부정적분으로 갈리는 것이다. 당연하다. 어떤 결과의 원인은 여럿일 수 있기 때문이다. 현장에 증거가 있다면 그 증거에 해당하는 용의자는 여럿일 수 있다. 증거를 모으면 모을 수록 용의자는 좁혀질 것이다. 여기까지가 현대의 수학이 접근한 경계선이다.

자 이제 머신러닝을 말해보자. 머신러닝을 이해함에 있어 미분을 꺼내든 이유는 그게 머신러닝의 핵심이기 때문이다. “어떤 결과가 있는데 그 결과의 원인이 뭐지?”를 미적분으로 정형화 한 것이 머신러닝이다. 물론 나는 이것만으로 머신러닝을 인공지능이라고 하기는 불가능하다는 것을 잘 알고 있다. 하지만 앞으로의 인공지능의 등장에 있어 핵심 중 하나를 규정했다는 것은 말할 수 있다.

6이라는 결과를 만들려면 1과 6으로도 2와 3으로도 만들 수 있다. “1과 6의 쌍이나 2와 3의 쌍이 보이면 6이라고 하자.”라는게 머신러닝의 “분류”다. 물론 동시에 2와 4는 8을 만들고, 또한 그 이전에 우리는 “2지선다(6 아니면 8)를 풀고 있다”까지 말해야 한다. 객관식(닫힌계) 문제를 풀어보자는 게 머신러닝의 분류라는 말이다. 중간 정리하자. 차원이 있어야 분류를 할 수 있다. 분류가 곧 차원이다. “넌 어느 차원(6과 8 중에)에 속하니?”

머신러닝도 인간과 마찬가지로 증거를 최대한 모으려고 한다. 그게 뭔지를 추측해야 하니깐. 미적분의 연결 도구로 증거와 범인을 열심히 연결한다. 그리고 증거를 모으면 모을 수록 범인은 특정된다. 그런데 문제는 지금 반포한강공원에서 일어나고 있다. 아버지가 친구를 범인이라고 난리 치는 이유는 맥락을 보지 않고 사실만 보기 때문이다. 우리는 세상에 맥락 없는 사실이 어딨냐고 크게 반문해야 한다.

현대의 머신러닝이 딱 여기까지 왔다. 맥락을 해석하지 않고 “순수하게 객관적일 것 같은 맥락( 그딴 건 없다만 )”만을 다루는 것으로 합의해버렸다. 이른바 P문제에 대한 NP문제의 정의 문제다. P문제는 풀 수 있는 문제이고 NP문제는 풀 수 없는 문제다. 1~10까지의 숫자 중에 하나를 맞추면 열리는 자물쇠가 있을 때라는 문제를 푸는 것이 P문제이고, 1~100을 넣어야 하는지 아니면 알파벳을 넣어야 하는 지도 모르는 게 NP문제이다.

딱 봐도 NP문제가 어렵겠지? NP문제가 바로 맥락을 맞추는 문제다. 어떤 사실이 있다. 근데 그 사실은 관점 혹은 맥락에 따라 달리 해석될 수 있다. 뭐 이런 거. P문제가 맥락이 닫힌 것이라면 NP문제는 맥락이 열려서 뭔지도 모르는 것이다.

머신러닝이 개와 고양이를 구분할 수 있는 것은 그것이 개와 고양이의 증거를 엄청 많이 모으고 이후에 그것의 범인을 개와 고양이로 한정하기 때문이다. 즉 귀납추론을 한다. 중요한 것은 이때 개와 고양이를 용의선상에 두냐, 아니면 다람쥐나 생쥐까지도 용의선상에 두냐에 따라서 결과가 완전히 달라진다는 것이다. 지금까지의 머신러닝은 어떻게든 P문제만을 다루는 것으로 특화되어 왔다. NP문제라면 너무 어렵잖아. 즉 사람이 머신러닝에게 개와 고양이의 둘 중에 하나만 맞추라고 세팅해준다.

이때 용의자의 범위를 어디까지 두지?가 바로 구조론에서 말하는 닫힌계의 설정이다. 닫힌계를 어디까지 설정하느냐에 따라서 사실에 대한 해석이 달라진다. 우리는 문제를 풀기 전에 먼저 닫힌계를 설정한다. 가령 어떤 사람이 만원을 손에 쥐었다. 그 사람의 기분은 어떨까? 이때 “기분이 좋지~”라고 하는게 구조론에서 말하는 자기소개다.

좀 아는 사람이라면 누가 주웠느냐에 포인트를 두고 말할 것이다. 왜 니 기분을 말하냐고!라고 꾸짖는게 구조론이다. 암튼 관점을 제시하면 당신은 베이즈추론을 한 것이 된다. 어떤 수가 있다. 1과 1은 같다. 근데 1/2와 1/3의 의미는 다르다. 이것이 통계학적 사고다. 모집단(분모)의 크기가 다르므로 대상의 의미가 달라진다. 노숙자가 손에 든 만원과 이재용이 든 만원은 의미가 다르다는 것이다. 바로 몬티홀의 딜레마다.

루크스카이워커가 다스베이더의 “I am your father.”라는 말을 듣고 멘붕한 이유다. 제국에 맞서온 자신의 삶이 통째로 부정되기 때문이다. 맥락이 바뀌어 버렸다. 이쯤 되면 언어에 맥락이 있다는 게 느낌이 좀 오는가? 이거 장난 아니다. 당신이 느낌이라고 했던 그 모든 사실이 사실은 맥락에 의한 것이다. 당신은 말하기 거시기 한 게 있는가? 보나마나 맥락 때문이다.

문제는 머신러닝이다. 현대의 머신러닝은 만원을 구분함에 있어 노숙자건 이재용이건 구분하지 않는다. 무맥락 같은 걸 하겠다고 설친다. 노엄 촘스키 같은 무맥락 주의자는 좀 닥쳤으면 좋겠다. 뭐, 챗봇 분야에서 맥락분석이라고 해서 살짝 접근은 하는데, 애들 장난도 아니고 너무 대충 건드리고 만다. 우리 좀 진지해지자. 이거 그렇게 간단한 문제가 아니라니깐. 2,000년 해묵은 어려운 문제라고. 쫌.

참고로 알파고

알파고는 바둑판에 놓인 바둑돌을 보고 그것이 어떤 의미를 가진 수인지(이길 확률이 얼마인지)를 과거 경험에 의해 분류하고, 그것의 다음 수를 시뮬레이션(CPU 노가다)한다. 알파고가 어려운 문제처럼 보이지만, 그래봤자 P문제를 푸는 것이므로 쉬운 문제가 된다.(어떤 측면에서는) 적어도 알파고는 지금 자신이 하는 것이 바둑인지 장기인지는 알고 있으니깐. 그걸 모르면 NP문제가 되는 거고.

참고로 기술적으로 자세히 들어가면 강화학습을 하는 알파고는 2단계의 문제를 풀고 있으므로 나름 NP문제를 푸는 것이라고 볼 수도 있다. 이때 말하는 NP문제는 문제 위의 문제를 푸는 것이다. 위에서 예시한 개와 고양이를 맞추는 문제는 지도학습 문제라 P문제이고.

그리고 당신이 지금 머리가 아픈 이유는 나의 글이 NP문제처럼 보여서 그런 것이다. 뭔 개소린가 싶지?

키워드에 대한 정보 머신 러닝 미적분

다음은 Bing에서 머신 러닝 미적분 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

See also  무지 외반증 교정기 후기 | [팩트리뷰] 발가락 교정기가 과연 효과가 있을까?┃무지외반증이란? 상위 105개 답변
See also  포토샵 얼굴 합성 | 포토샵강좌 178 - 얼굴보정시리즈 4탄! 보정으로도 이뻐지지 않으면 그냥 얼굴을 바꿔볼까요? (얼굴바꾸기, 얼굴합성) 54 개의 자세한 답변

See also  배우 김영란 남편 | 배우 김영란이 두 번의 이혼 이유 소름 비밀 공개했다! \"두 번의 실페한 혼인과 거짓 남편을 오랫동안 참았다! 진실이 드러났고 대중에게 충격을주다!\" 모든 답변

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [머신러닝] 컴퓨터가 학습을 하는 원리

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기
[머신러닝] #컴퓨터가 #학습을 #하는 #원리


YouTube에서 머신 러닝 미적분 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [머신러닝] 컴퓨터가 학습을 하는 원리 | 머신 러닝 미적분, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *