coursera_week2_2_Logistic Regression (Model)

2017. 10. 4. 17:29·Artificial Intelligence/Deep Learning
반응형

고양이인지 아닌지를 인식하기를 원하는 이미지가 input vector X로 주어질 때, Y에 대한 추정을 의미하는 Y^으로 표현가능한 ‘관측값’을 낼 수 있는 알고리즘이 필요하다. 우리는 확률값으로 주어지는 Y^(관측값)이 Y(실제값)와 동일하기를 바란다. 즉 이미지가 주어질 때, 해당 이미지가 고양이 사진인지 아닌지를 Y^이 정확히 말해줄 수 있어야 한다. 
이를 위해 X-dimensional 벡터인 input과 X와 동일한 차원인 W, 그리고 실수값인 b가 주어질 것이다. 이렇게 W,X,b가 주어졌을 때 output값을 어떻게 만들어낼 수 있을까?
한가지 시도해볼 수 있는 건, input에 대하여 linear function을 만드는 것이다. 하지만 linear regression에서 사용하는 모델이기 때문에, 우리가 지금 하고자 하는 문제인 분류문제(binary classification)에는 적합하지 않다. 다시 말해, Y^과 Y값이 확률적으로 얼마나 같은지 살펴보고 싶은 상황이기 때문에, 확률값을 봐야 한다. 다시 말해, 함수의 결과가 0과 1사이의 값으로 나와야만 한다. 
linear function을 사용하면 값으로 음수가 나올 수도 있고, 1보다 큰 값이 나와버릴 수도 있기 때문에 적합하지 않다. 따라서 logistic regression을 사용한다. logistic regression이란, linear function에 sigmoid function 공식을 적용하여 나온 값을 말한다. 우리는 이 값을 사용하면 된다.(즉 0과 1사이의 값으로 나올 것이라고 추정가능하다.)

sigmoid 함수의 대략적인 모습은 다음의 그래프와 같다. 0에서 1까지 부드럽게 올라가는 모습이 보인다.
이 함수는 z값이 0일 때 0.5의 값을 지나간다. 여기서 z값이란 다음의 quantity를 의미한다; 
sigmoid function 공식은 다음과 같다; "1 over 1+E to the negative Z"
Z값이 매우 커지면, 값은 0에 가까워지게 된다. 따라서 sigmoid값은 1에 가까워진다.
반대로, Z값이 매우 작아지면, 혹은 아주 큰 음수라면, 값은 아주 큰 수가 된다. 따라서, sigmoid값은 0에 가까워진다.

학습시에 우리가 할 일은 W와 b를 학습시켜 최적의 값을 찾도록 하는 것이다. 그래야 Y^(관측값)이 Y(결과값)와 같은 값을 나타내게 된다.


W와 b에 대하여 또 다른 notation을 살펴보자. (단, 아래의 notation을 앞으로 쓸 것은 아니다!)
parameter를 theta로 표현하고 있다. 이 때 theta0가 bias라는 것에 유의한다. (따라서 feature의 개수 + 1개의 파라미터로 표현가능하다.)
deeplearning.ai course에서 위의 notation을 쓰는 일은 없을 것이다.



반응형
저작자표시 비영리 변경금지 (새창열림)

'Artificial Intelligence > Deep Learning' 카테고리의 다른 글

coursera_week2_4_Gradient Descent  (0) 2017.10.04
coursera_week2_3_Logistic Regression Cost Function  (0) 2017.10.04
coursera_week2_1_Binary Classification  (0) 2017.10.04
coursera_week1_2_Supervised Learning with Neural Networks  (0) 2017.10.04
coursera_week1_1_Waht is a neural network?  (0) 2017.10.04
'Artificial Intelligence/Deep Learning' 카테고리의 다른 글
  • coursera_week2_4_Gradient Descent
  • coursera_week2_3_Logistic Regression Cost Function
  • coursera_week2_1_Binary Classification
  • coursera_week1_2_Supervised Learning with Neural Networks
doh.k
doh.k
  • doh.k
    DOHk's DevLog
    doh.k
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DailyLog
      • TIL
      • Project
        • Development
        • Artificial Intelligence
      • Development
        • Database
        • WEB
        • CSE
        • javascript
        • Algorithms
        • Linux
        • Network
        • Python
        • 라즈베리파이
        • Apple
      • Research
        • 논문
        • 금융,블록체인
        • Time-Series
        • 수학
        • 미적분학
        • 화학
      • Artificial Intelligence
        • Machine Learning
        • Deep Learning
        • TensorFlow
        • ReinforcementLearning
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    기계학습
    라즈베리파이
    Machine Learning
    파이썬
    딥러닝
    JavaScript
    ssh
    머신러닝
    gradient
    Spring
    gradient descent
    Linux
    Python
    Algorithms
    맥북
    자료구조
    스프링
    데이터
    경사하강법
    아이패드
    Network
    블록체인
    가상화폐
    데이터베이스
    자바스크립트
    Mac
    네트워크
    리눅스
    pycharm
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
doh.k
coursera_week2_2_Logistic Regression (Model)
상단으로

티스토리툴바