행렬

    [TIL] 210420 - Deep LearniNg (~C1W4L03)

    [TIL] 210420 - Deep LearniNg (~C1W4L03)

    이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W4L02까지의 내용을 정리한 것이다. 심층 신경망에서의 행렬 차원을 확인하는 방법을 설명한다. 내용 요약 행렬의 차원을 알맞게 만들기 각 층에서 만들어지는 행렬들의 차원을 혼돈하지 않기 위해서 확인하는 방법을 설명하였다. 아래와 같은 심층 신경망이 있을 때를 예시로 들었다. 각 층마다 계산하게되는 식은 $z^{[l]}=w^{[l]}a^{[l-1]}+b^{[l]}$ 이다. $l=1$ 층에서 은닉층의 노드 수($n^{[1]}$)는 3이다. 따라서 $z^{[1]}$ 행렬의 크기는 (3, 1)이 되어야 한다. $a^{[0]}$의 크기는 입력 특성의 수 이므로 (2, 1)이다. 그러면 $w^{[1]}$의 크기는 (3, 2)가 되어야 하다는..

    [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,) 여기..