> ## Content Index
> Fetch the complete content index at: https://www.popit.kr/llms.txt
> Use this file to discover other available public pages before exploring further.

# Coursera Machine Learning으로 기계학습 배우기 : week5
- URL: https://www.popit.kr/coursera-machine-learning-week5/
- Published: 2017-11-19T23:50:01.000Z
- Updated: 2017-11-19T23:52:19.000Z
- Author: 광식 이
- Tags: #소프트웨어, #데이터분석, ai, 기계학습, coursera, MachineLearning

## 개요

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

## 목차

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

- [Coursera Machine Learning으로 기계학습 배우기 : week1](http://www.kwangsiklee.com/ko/2017/07/corsera-machine-learning-week1-%EC%A0%95%EB%A6%AC/?ref=popit.kr)
- [Coursera Machine Learning으로 기계학습 배우기 : week2](http://www.kwangsiklee.com/ko/2017/07/corsera-machine-learning%EC%9C%BC%EB%A1%9C-%EA%B8%B0%EA%B3%84%ED%95%99%EC%8A%B5-%EB%B0%B0%EC%9A%B0%EA%B8%B0-week2/?ref=popit.kr)
- [Coursera Machine Learning으로 기계학습 배우기 : week3](http://www.kwangsiklee.com/ko/2017/07/corsera-machine-learning%EC%9C%BC%EB%A1%9C-%EA%B8%B0%EA%B3%84%ED%95%99%EC%8A%B5-%EB%B0%B0%EC%9A%B0%EA%B8%B0-week3/?ref=popit.kr)
- [Coursera Machine Learning으로 기계학습 배우기 : week4](http://www.kwangsiklee.com/ko/?s=Coursera&ref=popit.kr)

## 글을 읽기에 앞서…

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

\====================== 5강 ============================================

# Cost Function and Backpropagation

## Cost Function

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0050.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0100.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0200-1.png)

## Backpropagation Algorithm

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

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0250.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0300.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0400.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0500.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0600.png)

## Backpropagation Intuition

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0630.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/costfunctionandbackpropagation0650.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0700.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0800.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/costfunctionandbackpropagation0900.png)

# Backpropagation in Practice

## Implementation note: Unrolling Parameters

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/backpropagationinpractice0050.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0100.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0200.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0300.png)

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

```matlab
>> 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**을 통해 추출할 수 있다.  

```matlab
>> 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

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/backpropagationinpractice0350.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0400.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0500.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0600.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0700.png)

## Random Initialization

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/backpropagationinpractice0750.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0800.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice0900.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice1000.png)

## Putting it Together

![](http://www.kwangsiklee.com/wp-content/uploads/2017/11/backpropagationinpractice1050.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice1100.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice1200.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice1300.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/backpropagationinpractice1400.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/applicationofneuralnetworks0100.png)

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/applicationofneuralnetworks0200.png)