Coursera Machine Learning으로 기계학습 배우기 : week5

개요

지난 시간에 이어 Coursera Machine Learning으로 기계학습 배우기 : week5 정리를 진행한다.

목차

해당 포스팅은 연재글로써 지난 연재는 아래의 링크를 참고한다.

글을 읽기에 앞서…

  • 본글은 필자가 코세라 기계학습을 공부를 하는 과정에서 개념을 확고히 정리하기 위하는데 목적이 있다. (필자가 나중에 내용을 다시 찾아보기 위한 목적이 있다.)
  • 코세라 강의 week 개수에 맞추어 포스팅을 진행할 예정이다.
  • 코세라의 슬라이드에 한글 주석을 단것이 핵심으로 내용에서 글을 읽을 필요 없이 슬라이드 그림만으로 최대한 이해가 되게끔 하는데 목적이 있다.
  • 수학은 한국의 고등수학을 베이스로 한다. 수학적 개념이 나올때 가급적 고등학교 수학을 베이스로 내용을 정리한다.
  • 정리내용의 목차 구성을 코세라 강의와 동일하게 맞추고 또한 제목을 원문으로 둔다. (원본강의 내용과 정리 내용을 서로 서로 찾아보기 쉽게하기 위함이다.)

====================== 5강 ============================================

Cost Function and Backpropagation

Cost Function

Backpropagation Algorithm

Back Propagation의 또다른 이름은 Error-Backpropagation이다. 즉 에러를 역전파 하는 알고리즘이라는 뜻이다.

Backpropagation Intuition

Backpropagation in Practice

Implementation note: Unrolling Parameters

직접 옥타브로 실습하여 어떤 개념인지 구체적으로 이해해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
>> Theta1 = ones(10,11)
    Theta1 =
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
    >> Theta2 = 2*ones(10,11)
    Theta2 =
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
       2   2   2   2   2   2   2   2   2   2   2
    >> Theta3 = 3*ones(1,11)
    Theta3 =
       3   3   3   3   3   3   3   3   3   3   3
     >> thetaVec = [Theta1(:); Theta2(:); Theta3(:)];
     >> size(thetaVec )
     ans =
        231     1

thetaVec에서 세타1으로 사용할 행렬을 reshape을 통해 추출할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
>> reshape(thetaVec(1:110), 10, 11)
    ans =
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1
       1   1   1   1   1   1   1   1   1   1   1

Gradient Checking

Random Initialization

Putting it Together


Popit은 페이스북 댓글만 사용하고 있습니다. 페이스북 로그인 후 글을 보시면 댓글이 나타납니다.