로지스틱 회귀
[TIL] 210401 - Deep LearniNg (~C1W2L18)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L18 까지의 내용을 정리한 것이다. NumPy를 사용할 때 주의할 점과 문제를 예방하는 법을 알아보았다. 그리고 로지스틱 회귀의 비용함수가 유도되는 과정을 공부하였다. 내용 요약 파이썬과 NumPy 벡터 NumPy를 이용해서 벡터를 만들 때 흔히 실수할 수 있는 예시를 들었다. 크기가 5인 정규분포를 가지는 벡터를 만들려면 아래와 같이 입력한다. >>> a = np.random.randn(5) >>> print(a) [ 0.68386802 0.36410561 -0.67967483 -0.83958757 -2.05102972] 언뜻 보면 (1, 5) 크기의 행렬 같지만 그렇지 않다. >>> print(a.shape) (5,) 여기..
[TIL] 210330 - Deep LearniNg (~C1W2L13)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L13 까지의 내용을 정리한 것이다. 벡터화가 무엇이고 어떻게 사용하는지 살펴본다. 내용 요약 벡터화 (Vectorization) 순차적으로 계산하는 것보다 동시에 분산해서 처리하는 것이 훨씬 빠른 결과를 낼 수 있다. 예시로든 코드를 직접 실행해보니 for 문은 약 600ms, 벡터화를 사용한 코드는 약 2ms의 시간이 걸렸다. import numpy as np import time a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a, b) toc = time.time() print(c) print("Vectorized ve..
[TIL] 210329 - Deep LearniNg (~C1W2C10)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L10 까지의 내용을 정리한 것이다. 계산 그래프를 이용해서 미분 해보고 이를 로지스틱 회귀의 경사하강법에 적용해 보았다. 내용 요약 계산그래프로 미분하기 파라미터 $a$, $b$, $c$가 $J$의 결과값에 어떤 영향을 미치는지 알아낼 수 있음 위 그래프의 오른쪽에서 왼쪽으로 미분을 이용하여 파라미터 관계를 알아내는 방법을 설명함 이 때 미분의 연쇄법칙을 이용함 ${dJ \over da} = {dJ \over dv}{dv \over da}$ Andrew Ng 교수는 코드에서 미분값을 의미하는 변수를 선언할 때 아래처럼 표기하기로 함 $d Finaloutputvar \over dvar$ --> dvar 로지스틱 회귀의 경사하강법..
[TIL] 210325 - Deep LearniNg (~C1W2L03)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L03 까지의 내용을 정리한 것이다. 로지스틱 회귀와 비용 함수에 대한 내용을 다룬다. 내용 요약 신경망 학습방법 정방향 전파 역방향 전파 이 두가지가 어떻게 다른지는 이후에 다루게 됨 일단은 이런 것이 있다는 것을 알고 넘어감 이진분류(Binary Classification) yes or no로 분류하는 것 고양이가 맞다. / 고양이가 아니다. 로지스틱 회귀(Logistic regression)라는 알고리즘을 사용함 표기법 정리 $m$: 학습을 위한 데이터 세트 수 ${(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), ... (x^{(m)}, y^{(m)}), }$ $n$: 입력 데이터 하나의 원소 개수 ..