1

Coursera에서 사용할 수있는 기계 학습 과정의 기능을 벡터화하는 방법을 이해하는 데 문제가 있습니다. 과정에서 Coursera 기계 학습 : 그래디언트 하강 벡터화

, 앤드류 응은 가설이 X 곱한 세타의 전치에 벡터화 할 수 있다는 설명 : 나는 연습에이를 구현할 때

H(x) = theta' * X 

내 첫 번째 문제입니다. 왜 종이의 벡터화는 세타의 전치이고 x를 곱한 것이고 옥타브의 경우 X 배의 세타입니까?

theta'*X % leads to errors while multiplying 

두 번째 문제는 첫 번째 문제 다음에 나와 있습니다.

내가 기울기 하강 기능이 합 벡터화 할 때 :

sum((h(x)-y)*x)) 

난 정말 당신이 한 번 벡터화에 도착 이해가 안 돼요을 :

X'*(h(x)-y) 

사람이 설명 할 수 있을까?

+1

이렇게 대답하려면 행렬 (X, theta, x, y ...)의 크기를 알아야합니다. Btw,'''를 조바꿈으로 사용하지 말고'.''을 사용하십시오. – Andy

+0

답을 고맙습니다. 현재 X 값은 47x3 행렬로, 값과 값으로 채워져 있습니다 : https://github.com/yhyap/machine-learning-coursera/blob/master/mlclass-ex1/ex1data2.txt. 세 번째 열은 y (47x1 행렬)입니다. 쎄타는 [0; 0; 0]. 이 특정한 경우에, 우리가 왜 이런 방식으로 vecotrize 할 수 있는지 알고 있습니까? – etiennefr

+0

[기계 학습 - 배치 그라디언트 디센트를 사용한 선형 회귀]의 가능한 복제본 (https://stackoverflow.com/questions/32274474/machine-learning-linear-regression-using-batch-gradient-descent) – rayryeng

답변

1

취향의 문제입니다. 통상적 인 관례는 행렬 - 벡터 곱셈, 즉, 당신이 선호하는 것을 얻는 것이다. 모두를으로 바꾸면 한 모드에서 다른 모드로 전환 할 수 있습니다. 작동 X*theta하여 승산하고 전치 수식 X*thetaX의 각 행 theta.' * X.'

하나 개의 샘플 포인트의 데이터 (커널 함수 값)가 포함되어있는 경우 즉,이다.

theta.'*X 규칙에서 표본 지점 데이터를 포함하는 것은 X의 열입니다.

그래서 항상 컨텍스트에 따라 달라지며, 행으로 정의되는 것과 열 벡터로 무엇이 정의되고 더 큰 개체 또는 연산에 함께 쓰여지는지가 결정됩니다.