2022년 12월 21일 수요일

B-Hanbit |Python |Day. 270 | 한 번에 끝내는 딥러닝/인공지능 초격차 패키지 Online

   

B-Hanbit |Python |Day. 270 |
한 번에 끝내는 딥러닝/인공지능 초격차 패키지 Online

[이론 학습 // Day. 270]

ML 기초 / CH01_03. 선형회귀, 로지스틱 회귀 그리고 log-likelihood

#460DaysOfCode _ 202212221




해당 게시물은 'fastcampus'에서 운영하는 온라인 강의를 직접 구매하여 작성되었습니다.
'한 번에 끝내는 딥러닝/인공지능 초격차 패키지 Online'을 기반으로 작성되었습니다.
학습 후, 학습한 내용을 토대로 개인적으로 작성된 단순 학습 결과물임을 알려드립니다.
해당 MOOK에서 제공되는 자료는 일절 포함되어있지 않습니다. 
문제 시 연락바랍니다.

#460DaysOfCode #Day270




[270일 차 학습]
[Part5. 딥러닝 기초 알고리즘 및 최신 트렌드 알고리즘]

[ML 기초]
[CH01_03. 선형회귀, 로지스틱 회귀 그리고 log-likelihood]

- 지도학습
        - 분류 문제(Classification): 이산적으로 구성된 레이블을 각각의 학습데이터로부터 학습시키는 경우.
            x데이터 y레이블의 경우, (x, y)처럼 각각의 세트의 형태로 구성이 되어있음.
            하나하나 구분되어 서로가 연속적이지 않게 분류되어있음. 
            > 강아지, 고양이

        - 회귀 분석 문제(Regression): 연속적인 레이블을 각각의 학습 데이터로부터 학습시키는 경우.
            x데이터 y레이블의 경우, (x, y)처럼 각각의 세트의 형태로 구성이 되어있음. 
            이때 y가 연속적으로 구성이 되어있음.
            > 주식금액, 현금액, 생체신호
            > 알파고 경우의 수를 확률적으로 추론하므로 회귀분석 사용



선형 회귀 문제(Linear Regression)
        - 선형회귀로 이항분류(binary classification) 하기.
            선형 == 일차함수 형태 > y=mx+b 꼴 == f(x) = θ1x + θ0 라고도 할 수 있음
            선형 회귀 점으로부터 윗부분과 아랫부분(혹은 왼쪽부분과 오른쪽부분)으로 나눌 수 있음.


            (수식)
            실제 yi가 레이블의 경우, 예측 된 y의 확률 값이 ŷ이라고 표현 시 다음과 같은 식이 나옴.

                     n                 n                 n
            RSS = Σ (yi - ŷi)^2 = Σ (yi - f(xi)) = Σ (yi - (θ0 + θ1xi))^2
                     i                   i                 i

                        최적화     >      f(x)      >        f(x) 대입

            해당 식은 RSS 즉 손실함수의 값 == f(x)의 에러의 제곱의 합을 목적으로 함수 최소화하여 최적의 함수를 찾음 == 최적화를 한다는 것은 미니멈과 맥시멈을 찾는다는 것

            n
            Σ (yi - (θ0 + θ1xi))^2 라는 최소화 된 식의 최솟값은 미분하면 0이 되는 값. 
            i

            곧, 해당 최소화된 식의 최솟값 == 미분한 값이 0 
            * 이차함수에서 미분 값이 0이 되었을 경우, 최대이거나 최소의 확률이 있기 때문.


                    θ0에 대해서 RSS값 미분
                         δRSS     n
                        ㅡㅡㅡ = Σ -2(yi - (θ0 + θ1xi)) = 0 => θ0 = E[y] - θ1E[x]
                          δθ0      i
                                         *Chain Rule 적용                       
                        위 식을 대입하면 다음과 같다. 이는 θ1을 구하기 위한 것.

                                 n
                        RSS = Σ (yi - (θ0 + θ1xi))^2
                                 i
                                 n                                           n
                              = Σ (yi - (E[y] - θ1E[x]) - (θ1xi))^2 = Σ (yi - E[y] - θ1(xi - E[x]))^2
                                 i                                            i
                                             θ0 대입     >           θ1으로 묶어서 정렬

                        θ0과정과 동일하게 θ1에 대해서 미분을 진행.

                         δRSS     n                                                                 
                        ㅡㅡㅡ = Σ - 2(xi - E[x])(yi - E[y] - θ1(xi - E[x])) = 0 
                          δθ0      i
                                                *Chain Rule 적용
                                        n                       
                                        Σ  (yi - E[y])(xi - E[x])
                                       i=1
                        => θ1 = ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ  결과 도출.
                                        n 
                                        Σ  (xi - E[x])^2
                                       i=1



로지스틱 회귀 문제(Logistic Regression)
        - 로지스틱 회귀로 이항분류(binary classification) 하기.
            (이론적으로 계속 나옴 > 딥러닝이 비선형, 시그모이드 함수를 사용하기 때문)
            S 가 형태의 그래프.
            연속함수이며, 대칭함수(symmetric). 미분이 매우 쉬워 그래디언트 디쎈트에 적합함.
                              1
            == f(x) = ㅡㅡㅡㅡ
                          1+e^-x

            ㄴ 시그모이드 함수, 로지스틱 함수 라고 불림

            (수식)
            미분이 조금 더 쉽게 만듦.
            d          d        1                 1                   (1+e^-x) - 1 
            ㅡ f(x) = ㅡ  ㅡㅡㅡㅡ = ㅡㅡㅡㅡㅡㅡ e^-x = ㅡㅡㅡㅡㅡㅡ 
            dx         dx  1+e^-x      (1+e^-x)^2             (1+e^-x)^2   
                           1            1
                     = ㅡㅡㅡ - (ㅡㅡㅡ)^2 = f(x) - f(x)^2
                       1+e^-x    1+e^-x


                - 로지스틱 회귀를 사용한 로그 우도법(Log Likelihood)(= 로그 가능도)
                    현재 이항분류를 진행하고 있으므로, 각 값은 0 혹은 1로 예측 됨. 연속적 X.
                    즉, 베르누이 분포를 따른다고 할 수 있음.
                    ㄴ 동전 앞 뒷면 1/2, 주사위 확률 1/6
                    
                    (수식)
                    시그마 σ = 시그모이드 가정 > 어떤 입력값에도 시그마는 0~1사이 확률이 나오게 된다.
                    Y ~ Ber(p),p = σ(θx)

                    이를 베르누이 분포에 대하여 표현을 해주면 이렇다.
                    다음을 대입한다. P^y(1 - P)^1 - y (시그모이드 함수)

                    P(Y = y|X = x) = σ(θx)^y * (1 - σ(θxi))^1 - yi

                    우도법 즉, 가능도(Likelihood)(= L(θ))는 다음과 같다. 독립적으로 i에 대해서 모든 확률을 곱한 것.

                    L(θ) = П P(Y =y^i|X = x^i) = П σ(θxi)^yi * (1 - σ(θxi))^1 - yi
                             i                             i

                    이런 가능도(우도)를 최대로 하는 최적의 θ를 구하는 것이 목표이므로 위 식을 최적화 해준다. 
                    먼저 log를 씌워주어 보기 편하게 바꾼다. (log a * b = log a + log b 성질 이용) 고로 시그마로 변환. 

                    log(L(θ)) = Σ [yi log(σ(θxi) + (1 - yi) log(1- σ(θxi))]
                                   i

                    이에 해당 함수를 최대로 하기보다, 음수를 취해서 줄이는 방향을 한다. 고로  손실함수를 계산 할 것이다. 

                    min J(θ) = min(- Σ [yi log(σ(θxi) + (1 - yi) log(1- σ(θxi))]
                      θ            θ     i

                    함수가 아래로 볼록한 형태를 띄기 때문에, 지그재그로 내려오는 모양, 
                    '그래디언트 디센트'로 최적화 문제를 최종적으로 풀 수 있다. 
                    그리고 이는 크로스 엔트로피와 같다. 




댓글 없음:

댓글 쓰기