🚨 본 글은 딥러닝을 시작하기 전 선수 지식에 대한 내용을 정리한 글입니다 :)
이전 글
전 글에 이어서 딥러닝을 시작 하기 전 꼭 알아야할, 알아두면 좋은 선수 지식에 대해 정리하고자 한다.
오늘 이야기 하고자 하는 것은 "원리" 이다. AI의 원리는 무엇이라고 생각하는가?
데이터? 학습? 알고리즘?
맞는 말이 될 수 있다. 하지만 이 모든 걸 포함하는 원리는 바로 "수학"이다.
인공지능(AI)과 수학은 밀접한 관계를 가지고 있다. 사실, 인공지능의 기본적인 개념과 수학적인 원리는 서로 뗄 수 없는 관계에 있는데
인공지능은 데이터를 분석하고 패턴을 파악하며, 이를 통해 문제를 해결한다.
이러한 데이터 분석과 패턴 인식은 수학적인 원리와 알고리즘에 근거하여 이루어진다. 특히, 선형대수학, 확률론, 최적화 이론 등 수학 분야의 개념과 이론들은 인공지능의 핵심적인 역할을 담당한다.
또한, 딥러닝 등의 인공지능 분야에서는 수학적인 모델링을 통해 신경망을 구성하고, 이를 학습시켜 문제를 해결한다. 그렇기에 인공지능 분야에서는 수학적인 개념과 이론들을 활용하여 더욱 정확하고 효과적인 인공지능 모델을 개발하는 것이 중요하다.
그래서 지금부터 인공지능에 이용되는 수학에 대해 설명하고자 한다.
1. 일차 함수, 기울기와 y절편
위 그림은 일차 함수가 나타난 그래프이다. 그 전에 먼저 함수란 두 집합 사이의 관계를 설명하는 수학 개념이다.
변수 x와 y가 있을 때, x가 변하면 이에 따라 y는 어떤 규칙으로 변하는지 나타낸다.
참고 : 인공지능에서 x를 독립적 변수(독립적으로 변할수 있는 값), 이러한 독립 변수에 따라 변하는 변수 y를 종속적 변수라고 한다.
위 그래프를 식으로 나타내면, y = ax + b가 될 수 있다. 여기서 a는 기울기, b는 y절편이다.
기울기 a는 y의 증가량을 x의 증가량으로 나눈 값이고, y절편 b는 x가 축과 만나는 지점 즉 x = 0일때 나타나는 값이다.
인공지능에서의 일차함수는 딥러닝을 설명하는 가장 간단한 표현이고, 핵심은 적절한 a와 b를 찾는 것이 목표이다.
2. 이차함수 & 최솟값
이차함수란, y가 x에 관한 이차식으로 표현되는 것을 의미한다. 이 그래프를 식으로 나타내면 y = ax^2이다.
그림에서도 볼 수 있듯 a > 0이면 아래로 볼록한 포물선이 그려진다. 이때 포물선 맨 아래 지점 즉, 꼭지점이자 최솟값은 딥러닝에서 핵심 요소이며, 이 값을 찾는 것이 가장 중요하다.
최솟값이 (0,0)이면 쉽게 구할 수 있겠지만 만약, 이차함수 그래프가 평행이동을 한다면 최솟값을 구하는 것이 쉽지 않을 수 있다.
이때 사용하는 것이 최소 제곱법이다. 하지만 딥러닝에서는 최소 제곱법을 알기 위해 필요한 조건들을 계산 할 수가 없기 때문에 다른 방법을 사용해야 한다. 그것이 바로 다음에 나올 "미분" 이다.
3. 미분 & 순간 변화율
단언컨데, 인공지능을 배우면서 가장 중요하고 절대적으로 알아야 할 것이 바로 미분이다. 이차함수에서 나타나는 최솟값을 미분으로 구하기 때문이다.
위 그래프는 y = x^2을 나타내는 그래프다. 어떠한 a값을 넣으면 a^2이 되는 것이다.
그런데 여기서 a가 아주 미세하게 움직였다고 가정해보자. 그럼 당연히 변화한 만큼 y도 미세하게 변화 할 것이다. 수학에서는 이렇게 아주 미세한 변화를 보고 "순간 변화율"이라는 이름을 붙였다.
이 순간 변화율은 아주 미세하게 움직이기 때문에 방향만 드러낸다. 그래서 이 방향성을 따라 직선을 쭉- 그어주면? 그래프와 맞닿는 선이 생기는데, 이를 "접선" 이라고 하고 "기울기"를 나타낸다.
미분을 한다는 것은 쉽게 말해 순간 변화율을 구한다는 의미이기도 하며, 어느 순간에 어떤 변화가 일어나는지 숫자로 나타내는 것을 미분 계수라고 한다.
이때 가장 중요한 것은 기울기가 0일때, 그래프에서 최솟값인 지점이 나타나고 최솟값을 구할 수 있다.
알아두면 좋은, - 순간 변화율 구하기
어떤 함수 y = f(x)가 주어졌다. a를 대입하면 f(a), b를 대입하면 f(b)가 된다. 이때 두 점을 이어 직선을 그어보자.
이렇게 점 A와 B를 통해 x와 y의 증가량을 알 수 있다. 이 말인 즉, 기울기를 알 수 있다는 것이다.
참고 : 여기서 델타(∆)는 변화량을 나타내는 기호이다.
x 증가량 : b - a
y 증가량 : f(b) - f(a)
이를 델타로 표현하면,
x 증가량 : ∆x
y 증가량 : f(a + ∆x) - f(a)
따라서 기울기를 표현하면, 아래와 같다.
하지만, 여기서 문제점이 하나 있다. 저 직선의 기울기는 평균 변화율을 나타낸다.
뭐가 문제냐고? 우리에게 필요한건 순간 변화율이다. 이를 구하려면, lim 기호를 사용해야한다.
여기 lim의 의미는 x의 증가량이 0에 가까울 만큼 작을 때를 의미한다.
아래는 딥러닝에 자주 쓰이는 미분 공식이 정리되어있다.
4. 편미분
미분과 편미분 모두 "미분한다" 라는 공통점이 있지만, 이 둘은 다르다. 모든 변수를 미분하는 것과 달리 편미분은 우리가 원하는 딱 하나의 변수만 미분하고 그 외에는 상수로 취급한다. 일반적으로 f(x) = x와 같은 함수를 미분하라고 했을 때 변수가 하나 뿐이라 혼선이 생길일은 없다.
그러나, 만약 식이 그게 아니라면? 이를 테면 이런 식 말이다.
보통 이럴때 편미분을 사용하고 최고 차항의 계수를 선택하여 미분한다. 여기는 x가 최고 차항을 지니고 있으므로 x에 관하여 미분을 해보자. 아까 보여준 딥러닝에 자주쓰이는 미분 공식 사진을 참고하라.
1. 미분 기본 공식 4번에 따라 x^2은 2x 가 된다.
2. 미분 기본 공식 3번에 따라 yx는 y가 되고
3. 미분 기본 공식 1번에 따라 a는 0이 된다.
이를 정리하면,
이렇게 된다.
참고 : 함수 f 를 x 에 관해 편미분하라’고 하며 다음과 같이 식을 쓴다.
5. 지수 & 로그
1. 지수
- 어떠한 수 a^x(a의 x제곱) 에서 x를 지수라고 하고, a를 밑이라고 한다. 식으로 나타내면 다음과 같다.
1 - 1). 지수 함수
- 위 식을 그래프로 나타내면 아래와 같다.
아마 그래프가 두 가지 형태로 나타난 것을 보고 이상하게 생각할 수도 있겠지만,
지수 함수에서 a값이 1이면 함수가 아니다. 또 0보다 작으면 허수를 포함하게 되므로 안 된다. 따라서 밑의 값은 a > 1이거나 0 < a < 1, 둘 중 하나가 되어야 하므로 위와 같은 그림이 나타난다.
2. 로그
아까 지수 부분에서 나왔던 식을 다시 보자.
우리가 만약 a와 y를 알고 x를 구해야 한다면, 어떻게 할 수 있을까?
이때 사용하는 방법이 로그이고 이를 식으로 나타내면 다음과 같다.
2 - 1). 로그함수
로그 함수와 지수함수는 밀접한 연관이 있다. "역함수"(y = x에 대칭) 관계라는 것인데, 아래 이미지를 보면 그래프는 다음과 같은 형태로 나타난다.
6. 시그모이드 함수
딥러닝에서는 입력 받은 신호를 얼마나 출력할지 계산하는 과정이 굉장히 많이 반복된다. 이때 출력값으로 얼마나 내보낼지 계산 하는 함수를 활성화 함수라고 한다.
시그모이드 함수는 활성화 함수 중에 가장 먼저 배우는 함수이다. 이 함수의 원리는 지수함수로 부터 오는데, 밑 값이 자연 상수인 e를 포함한다. e는 파이 처럼 중요하게 사용되는 무리수 중 하나이며 값은 대략 2.718281...이다.
이 자연상수가 지수에 포함되어 들어가 분모에 들어가면 시그모이드 함수가 된다.
이를 그래프로 나타내면 s형태로 나온다.
이렇게 AI의 원리 수학에 대해 정리해 보았다. 이미지를 보면 알겠지만, 필자는 아래의 책을 참고하여 정리하였다.
더 자세하게 알고 싶으면 책과 아래 링크를 참고 바란다.
'AI' 카테고리의 다른 글
[AI] Open cv로 영상 다루기 (0) | 2023.09.04 |
---|---|
[AI] Anaconda 설치 및 가상환경 세팅하기 (0) | 2023.08.21 |
[AI] 텐서플로우로 선형회귀 활용하여 시험 성적 예측하기 (0) | 2023.05.08 |
[AI] 딥러닝 진짜 하시게요? 그럼 이 글 먼저 보고 시작해요. (1) (2) | 2023.03.17 |
[AI] 사람의 시대가 끝나는 날이 올까? (0) | 2023.03.14 |