ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 53일차 - 파이썬 AI수학 기초(2)
    AI 솔루션 개발자과정(Java, Python) 2022. 12. 21. 10:21

    미분

    극한과 미분

    미분은 어떤 함수상의 각 점에서 변화의 비율로 인공지능에서 자주 사용된다.

     

    극한은 함수에서의 변수값을 어떤 값에 가깝게 할 때, 함수의 값이 한없이 가까워지는 값을 말한다.

    함수에서 x를 0에 가깝게 하면 y는 1에 가까워진다.

     

    y = f(x)에서 x의 미소한 변화량을 △x로 하면 x를 △x만큼 변화시킬 때의 y 값은 y = f(x + △x)이다.이때 y의 미소한 변화량은 △y = f(x + △x) - f(x)이다.

     

    y의 미소한 변화와 x의 미소한 변화의 비율은 위의 식에 양측을 △x로 나누어준다.

    이 식에서 △x의 값을 0에 한없이 가까워지는 극한을 생각한다면 다음 식과 같다.

    이 함수를 f(x)의 도함수 라고 한다. 그리고 함수 f(x)로부터 도함수 f`(x)를 얻는 것을 f(x)를 미분한다고 한다.

    도함수는 미분계수를 일반화한 개념으로, 함수의 접선의 기울기를 보여주는 함수이다. 

     

    이 함수의 경우 변수가 x뿐인데, 이와 같은 1변수 함수에 대한 미분상미분이라고 한다.

    도함수에 의해 1변수 함수 상의 어떤 점에서의 기울기를 구한다면 함수 f(x)상의 어떤 점 (a,f(a))에서의 기울기는 f`(a)가 된다.

     

     

    연쇄 법칙

    연쇄 법칙에 의해 합성함수의 미분을 할 수 있다.

    연쇄 법칙은 인공지능의 일종인 뉴럴 네트워크의 학습에 사용한다.

     

    합성함수란 y = f(u), u = g(x)와 같이 여러 개 함수의 합성으로 표현되는 함수이다.

     

    합성함수의 미분은 구성하는 각 함수의 도함수의 곱으로 나타낼 수 있다. 이를 연쇄법칙이라고 한다.

     

     

     

    편미분

    편미분에서는 다변수함수를 하나의 변수에 대해 미분한다.

    인공지능에서 파라미터 하나의 변화가 전체에 미치는 영향을 구하는데 사용한다.

     

    여러 개의 변수를 가진 함수에 대해 하나의 변수만으로 인한 미분편미분이라고 한다.

    편미분의 경우 다른 변수는 상수로 취급한다.

     

     

     

     

    전미분

    전미분에서는 다변함수의 미소변화를 전체 변수의 미소변화를 사용해서 구한다.

     

    전미분 할 때는 편미분한 변수의 변화를 각 변수의 편미분에 곱한 후 모두 더한다.

    그리고 x에 대해 편미분한 도함수에 x의 변화를 곱하고 y에 대해 편미분한 도함수에 y의 변화를 곱한다.그리고 모두 더한다.

     

     

     

    네이피어수와 자연대수

    네이피어수는 수학적으로 매우 편리한 성질을 가진 수이다.

    네이피어수의 값은 원주율처럼 무한으로 자리수가 이어지는 소수이다.

     

    네이피어수는 거듭제곱의 형태로 자주 이용되고 미분해도 식이 변하지 않는 편리한 특징을 갖고 있다.

    이 성질때문에 네이피어수는 수학적으로 다루기 쉽고 인공지능에서의 여러가지 수식에 사용된다.

     

    네이피어수는 numpy에서의 e로 취득할 수 있다. 또한 네이피어수의 거듭제곱은 exp()함수로 구현한다.

     

     

    네이피어수의 거듭제곱은 x가 0일 때 1이 되고, x가 1일 때 네이피어수의 값이 된다.

    x가 작아지면 0에 가까워지고, x가 커짐과 동시에 증가율이 증대한다.

     

    자연대수x가 1일 때 0이 된다.

    x가 0에 가까워지면 무한히 작아지고, x가 커지면 단조증가하는데, 증가율은 점차 작아진다.

     

    시그모이드 함수x 값이 작아지면 0에 가까워지고, x의 값이 커지면 1에 가까워진다.

    또한, 도함수 쪽은 x가 0일 때 최댓값인 0.25를 취하고 0으로부터 멀어짐에 따라 0에 가까워진다.

     

    시그모이드 함수에 의해 입력을 0과 1 사이의 연속적인 출력으로 변환할 수 있다.

    이 특성을 살려 인공지능에서는 인공적인 신경세포의 흥분 정도를 나타내는 활성화함수로서 시그모이드 함수가 사용된다.

    또한 시그모이드 함수의 도함수는 뉴럴 네트워크를 최적화하는 백프로퍼게이션 알고리즘에 사용된다.

     

     

     

    최급강하법

    최급강하법으로는 미분에 의해 구한 기울기를 바탕으로 함수의 최솟값을 구한다.

     

    경사법함수의 미분값을 바탕으로 최솟값 등의 탐색을 시행하는 알고리즘이다.

    최급강하법은 경사법의 일종으로 가장 급한 방향으로 강하하도록 해서 최솟값을 탐색한다.

     

    최급강하법으로 구할 수 있는 최솟값은 엄밀한 쵯소값은 아니다.

    그러나 현실의 문제를 다룰 때는 함수의 형상조차 알 수 없는 것이 많으므로 최급강하법으로 최솟값을 조금씩 탐색하는 접근이 유효하다.

     

     

     

    확률과 통계

    확률의 개념

    확률어떤 사건이 일어나는 것이 기대되는 정도를 말한다.

    확률은 사건이 일어날 경우의 수를 모든 경우의 수로 나눈 값이다.

     

    동전을 던져 앞면이 위로 올라갈 확률은 앞, 뒤중 하나로 50%의 확률이다.

     

     

    여사건사건 A에 대해서 A가 일어나지 않는 사건을 말한다.

     

    여사건이 일어날 확률은 [ 1 - 사건이 일어날 확률 ] 이다.

    사건이 일어나지 않는 모든 경우를 리스트업하는 것은 힘들지만 여사건을 사용함으로써 비교적 간단하게 확률을 구할 수 있다.

     

    많은 시행을 거듭하면 (사건의 발생 수/시행 수)가 확률로 수렴해 나간다.

    초기에는 편차가 심하지만, 시행 수가 커지면 해당 확률로 수렴해 간다.

     

    이처럼 확률은 어떤 사건이 일어나는 것이 기대되는 정도를 의미한다.

     

     

    평균값과 기댓값

    평균값기댓값은 각각 데이터의 특징을 파악하기 위해서 사용하는 값 중 하나이다.

    사실은 평균값과 기댓값은 같은 개념을 가리킨다.

     

    평균값은 여러 개의 값을 더해서 값의 수로 나눠 구한다.

    평균값은 여러 개의 값으로 이뤄진 데이터를 대표하는 값의 하나이다.

     

    numpy의 average() 함수로 평균값을 구할 수 있다.

     

    기댓값이란 값과 확률의 곱의 총합으로서 표현되는 값이다.

    기댓값은 대략적으로 말해서 [ 얻을 수 있는 값의 예상 ] 이다.

     

    시행에 의해 얻을 수 있는 값과 각각의 값의 확률을 곱하고 총합함으로서 표현되는값을 기댓값이라고 한다.

    기댓값은 numpy의 sum()함수를 사용해 확률과 값의 곱의 총합으로 계산한다.

     

     

     

    분산과 표준편차

    분산표준편차는 각각 데이터의 특징을 파악하기 위해서 사용하는 값 중 하나이다.

    모두 데이터의 흩어진 상태를 나타낸다.

     

     

    분산값과 평균값의 차를 제곱하여 평균을 취하는 형태를 가지고 있다.

    예를 들어 각각 몸무게가 55kg, 45kg, 60kg, 40kg인 사람들이 있을 때, 평균은 50kg이고, 

    몸무게와 평균의 차를 제곱하고, 총합하여 평균을 구하면 62.5가 된다.

     

    다른 예로 51kg, 49kg, 52kg, 48kg인 사람들의 평균은 50kg이고, 분산은 2.5가 된다.

    두번째 케이스의 분산이 더 작다.

    이렇게 분산은 값의 흩어진 정도를 나타내는 지표이다.

     

    분산은 numpy의 var() 함수로 구할 수 있다.

     

     

    표준편차분산의 제곱근으로 구한다.

    첫번째 케이스의 분산은 62.5이고, 제곱근은 7.91로 표준편차는 7.91이 된다.

     

    표준편차는 numpy의 std() 함수를 이용해서 구할 수 있다.

     

     

     

    정규분포와 거듭제곱 법칙

    정규분포가우스 분포라고도 불리며, 자연계나 사람의 행동 성질 등 여러 가지 현상에 대해서 잘 들어맞는 데이터의 분포이다.

     

    예를 들면 제품의 크기와 사람의 키, 시험 성적 등은 정규분포에 대체로 따른다.

    정규분포의 곡선은 확률밀도함수라 불리는 함수로 나타낸다.

     

    이 곡선은 표준편차가 작으면 폭이 좁아지고 크면 폭이 넓어진다.

    numpy의 random.normal()함수를 사용해서 정규분포를 따르는 난수를 생성할 수 있다.

     

    생성한 데이터는 matplotlib의 hist()함수로 히스토그램으로서 표시한다.

     

    인공지능에서는 매우 많이 변동하는 파라미터를 다루는데, 이러한 파라미터의 초깃값은 주로 정규분포를 따라서 랜덤으로 결정된다.

     

    거듭제곱 법칙을 따르는 분포는 정규분포와 마찬가지로 자연이나 사회 등의 여러 가지 현상에 잘 들어맞는다.

    정규분포보다도 폭이 넓고, 주식시장의 붕괴, 대규모 자연재해와 같은 극단적으로 드문 빈도의 현상을 다룰 수 있다.

     

     

    거듭제곱 법칙을 따르는 분포에 파레토 분포라는 분포가 있다.

    numpy의 random.pareto() 함수를 사용해서 파레토 분포를 따르는 난수를 생성한다.

     

     

     

    공분산

    공분산은 데이터 두 개의 관계성을 나타내는 수치이다.

    인공지능에 사용하는 데이터의 전처리 등에서 자주 사용된다.

     

    공분산의 의미는 다음과 같다.

        * 공분산이 크다 : x가 크면 y도 크다. x가 작으면 y도 작은 경향이 있다.

        * 공분산이 0에 가깝다 : x와 y에 그다지 관계는 없다.

        * 공분산이 작다 : x가 크면 y는 작다. x가 작으면 y는 큰 경향이 있다.

     

    공분산은 두 데이터의 평균을 구하고, 각각의 데이터에서 평균값을 빼고 곱한값을 총합하여 평균을 구한다.

    (A1 - A평균)(B1 - B평균) + (A2 - A평균)(B2 - B평균) + (A3 - A평균)(B3 - B평균) / 값의 수

    즉 두 데이터에서 동일한 인덱스에 대해 적용하여 계산한다.

     

    공분산은 numpy의 average()함수를 사용해서 구한다.

     

     

    random.multivariate_normal() 함수는 공분산과 정규분포를 사용해서 데이터를 생성한다.

    평균값과 공분산을 바탕으로 랜덤으로 페어 데이터를 생성한다.

    이 함수에서는 공분산을 행렬로 지정해야 한다.

     

     

    상관계수

    상관계수두 그룹의 데이터 관계를 나타낸다.

    상관계수는 공분산보다도 관계의 크기를 비교하기 쉬운 지표이다.

     

    상관계수는 +1에 가까워지면 양의 상관관계가 강해지고, x가 커지면 y가 커지는 경향이 강해진다.

    상관계수가 0인 경우, x와 y에는 관계가 없다.

    상관계수는 +-에 가까워지면 음의 상관관계가 강해지고, x가 커지면 y가 작아지는 경향이 강해진다.

     

    상관계수는 공분산과 비슷하나, 어떠한 케이스에서도 범위가 -1이상 1이하에 들어가기 때문관계의 세기를 비교하기 쉬운 것이 장점이다.

     

    상관계수는 numpy의 corrcoef()함수를 이용해서 구현할 수 있다.

    corrcoef()함수를 사용한 경우, 결과는 2 x 2행렬로써 얻을 수 있는데, 오른쪽 위와 왼쪽 아래가 상관계수가 된다.

    공분산과 표준편차로부터 구한 상관계수와 일치하는 것을 확인할 수 있다.

     

     

     

    조건부 확률과 베이스 정리

    조건부 확률은 어떤 사건 B가 일어난 조건을 바탕으로 다른 사건 A가 일어날 확률을 말한다.

    조건부 확률은 다음과 같이 나타낸다.

    P( A | B ) = P( A ∩ B ) / P ( B )

    P(B)는 사건 B가 일어날 확률이다.

     

    P( A ∩ B )는 사건 A와 B가 동시에 일어날 확률이다.

    즉 A와 B의 교집합이다.

     

     

    베이스 정리는 다음과 같은 식으로 나타낼 수 있다.

    P( B | A ) = [ P( A | B ) P (B) ] / P(A)

     조건부 확률 P(B|A)를 구하는데에 B가 일어날 확률 P(B)는 사전확률이라고 하며, A가 일어났다는 조건 하에 B가 일어날 확률 P(B|A)는 사후확률이라고 한다.

     

    베이스 정리는 사전확률을 사후확률로 변환하는 식으로 생각할 수 있다.

     

    P(B|A)는 간단하게 구할 수 있지만 P(B|A)를 구할 수 없는 경우, 베이스 정리가 도움이 된다.

    베이스 정리조건부 확률의 식으로부터 도출해낼 수 있다.

     

     

     

    우도(가능도)

    우도는 데이터의 타당성을 나타내는데 사용한다.

     

    우도는 모든 확률의 곱이 된다.

    데이터가 어떤 평균값과 표준편차의 정규분포를 따른 경우 확률밀도함수를 사용해서 우도를 나타낼 수 있다.

     

    우도는 확률의 곱이기 때문에 0에 한없이 가까운 값이 된다.

    또한 식이 곱의 형태이기 때문에 미분으로는 다루기 어렵다는 문제가 있다.

    그래서 우도는 자주 대수의 형태로 취급된다. 대수이면 값의 상하에 관해서 경향은 변하지 않기 때문이다.

Designed by Tistory.