앤드류 응 교수님의 코세라 머신러닝 강의를 요약하는 글입니다. Week2 의 상세 목차는 아래와 같습니다.
Week2 목차
1. Environment Setup Instructions (환경 설정)
2. Multivariate Linear Regression (다변량 선형 회귀)
3. Computing Parameters Analytically (해석적으로 파라미터 구하기)
4. Submitting Programming Assignments (프로그래밍 숙제)
5. Octave/Matlab Tutorial (옥타브/매트랩 튜토리얼)
이번 글은 Week2의 5강인 Octave/Matlab Tutorial (옥타브/매트랩 튜토리얼) 요약입니다.
5. Octave/Matlab Tutorial (옥타브/매트랩 튜토리얼)
(1) Basic Operations
(2) Moving Data Around
(3) Computing on Data
(4) Plotting Data
(5) Control Statements: for, while, if statement
(6) Vectorization
(6) Vectorization
예제는 아래와 같습니다.
$h_{\theta}(x)=\sum_{j=0}^{n} \theta_{j} x_{j}$
위 식을 벡터화 시킬 수 있습니다. 벡터들의 곱으로 나타낼 수 있다는 것입니다. 아래와 같습니다 .
$h_{\theta}(x)=\sum_{j=0}^{n} \theta_{j} x_{j}=\theta^{T}x$
벡터 $\theta$와 벡터 $x$는 아래와 같습니다.
$\theta=\begin{bmatrix}
\theta_{0} \\
\theta_{1} \\
... \\
\theta_{n}
\end{bmatrix}$
$x=\begin{bmatrix}
x{0} \\
x{1} \\
... \\
x_{n}
\end{bmatrix}$
벡터화의 장점이 무엇인지 알아보기 위해 벡터화하지 않은 경우의 코드와, 벡터화한 경우의 코드를 비교해봅시다.
<벡터화 하지 않은 코드>
prediction = 0.0;
for j = 1:n+1,
prediction = prediction + theta(j) * x(j)
end;
<벡터화한 코드>
prediction = theta' * x;
<벡터화 하지 않은 C++ 코드>
double prediction = 0.0;
for (int j=0; j<=n; j++)
prediction += theta[j] * x[j]
<벡터화한 C++ 코드>
double prediction
= theta.transpose() * x;
gradient decent 는 아래와 같이 updqte 됩니다.
벡터화한 연산을 적용해봅시다.
'ETC' 카테고리의 다른 글
정규분포의 표준화 / 2021년 수능 수학 가형 12번 [확률과통계] (0) | 2021.05.28 |
---|---|
순열과 조합 / 2021년 수능 수학 가형 9번 [확률과통계] (0) | 2021.05.28 |
모집단과 표본추출 / 2021년 수능 수학 가형 6번 [확률과통계] (0) | 2021.05.28 |
조건부 확률 / 2021년 수능 수학 가형 4번 [확률과통계] (0) | 2021.05.27 |
[머신러닝 앤드류응] (Week2) 5. 매트랩 튜토리얼 (5) for,while,if문 (0) | 2021.04.26 |
[머신러닝 앤드류응] (Week2) 5. 매트랩 튜토리얼 (4) 그래프 그리기 (0) | 2021.04.17 |
[머신러닝 앤드류응] (Week2) 5. 매트랩 튜토리얼 (3) 행렬 계산 (0) | 2021.04.11 |
[머신러닝 앤드류응] (Week2) 5. 매트랩 튜토리얼 (2) 데이터 불러오기 (0) | 2021.04.10 |
댓글