<핸즈온 머신러닝 2판>, <머신 러닝 교과서 3판>, <Do It! 딥러닝 입문>, <케라스 창시자에게 배우는 딥러닝> 에러타 안내

22 views
Skip to first unread message

Haesun Park

unread,
May 11, 2021, 9:46:05 AM5/11/21
to 머신러닝/딥러닝 도서 메일링 리스트
안녕하세요. 박해선입니다.

새롭게 등록된 에러타를 안내해 드립니다.

<핸즈온 머신러닝 2판>
  • (p192,193) 192페이지 코드 블럭 1번째 줄에서 from sklearn.base import clone을 from copy import deepcopy로 수정합니다. 193페이지 코드 블럭 마지막 줄에서 best_model = clone(sgd_reg)를 best_model = deepcopy(sgd_reg)로 수정합니다.
  • (p206) 그림 5-2에서 오른쪽 그래프의 x 축 이름을 x_0에서 x'_0으로 수정합니다.
  • (p240) 식 6-4의 2번째 줄에서 \text{MSE}_{\text{node}}=\sum_{i\in \text{node}} (\hat{y}_{\text{node}}-y^{(i)})^2를 \text{MSE}_{\text{node}}=\dfrac{1}{m_{\text{node}}}\sum_{i\in \text{node}} (\hat{y}_{\text{node}}-y^{(i)})^2로 수정합니다.
  • (p635) 2번째 코드 블럭의 2번째 줄에서 Y_pred = model.predict_classes(X_new)를 Y_pred = np.argmax(model(X_new), axis=-1)로 수정합니다.
  • (p636) 1번째 코드 블럭의 1번째 줄에서 y_proba = model.predict(X_new)[0, -1:, :]를 y_proba = model(X_new)[0, -1:, :]로 수정합니다.
  • (p750) 3번째 코드 블럭의 3번째 줄에서 lr=1e-3을 lr=1e-2로 수정합니다.
  • (p548) 아래에서 6번째 줄에 “i \times s_w에서 i \times s_w + f_w -1까지”를 “j \times s_w에서 j \times s_w + f_w -1까지”로 정정합니다.
<머신 러닝 교과서 3판>
  • (p167) Note의 첫 번째 코드 블럭의 4번째 줄 X_test_robust = rbs.fit_transform(X_test)를 X_test_robust = rbs.transform(X_test)로 정정합니다. 세 번째 코드 블럭 4번째 줄 X_test_maxabs = mas.fit_transform(X_test)를 X_test_maxabs = mas.transform(X_test)로 정정합니다.
  • (p168) 마지막 코드 블럭 바로 윗줄에서 ‘열을 하나 더 추가하고’를 ‘행을 하나 더 추가하고’로 정정합니다.
  • (p169) 위에서 2번째 줄에서 print(ex_2f)를 print(l2_norm)로 정정합니다.
<Do It! 딥러닝 입문>
(p288~p290) 손실 함수에서부터 연쇄법칙을 적용하지 않아 RNN의 도함수 유도 과정에서 행렬 곱셈의 차원이 맞지 않는 경우가 있습니다. 이를 보완하기 위해 다음과 같이 수정합니다.

* 288페이지 3번째 식
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1h}}=\boldsymbol H_p+\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2) \dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol W_{1h}}
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1h}}=\boldsymbol H_p+\dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol W_{1h}} \boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2)로 수정합니다.

* 288페이지 4번째 식
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1h}}=\boldsymbol H_p+\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2) (\boldsymbol H_{pp}+\boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2) \dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol W_{1h}})
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1h}}=\boldsymbol H_p+ (\boldsymbol H_{pp}+\dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol W_{1h}}\boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2) )\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2)로 수정합니다.

* 289페이지 1번째 식에서
\boldsymbol H_{ppp} \boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2) \odot \boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2)
\boldsymbol H_{ppp} \boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2) \boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2)로 수정합니다.

* 289페이지 3번째 식에서
\boldsymbol X+\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2)\dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol W_{1x}}
\boldsymbol X+\dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol W_{1x}}\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2)로 수정합니다.
그 아래 문장에서 “한 타임 스텝을 더 전개해 보겠습니다”를 “손실 함수를 포함하여 한 타임 스텝을 더 전개해 보겠습니다”로 수정합니다.
그 아래 식
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1x}}=\boldsymbol X+\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2)(\boldsymbol X+\boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2)\dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol W_{1x}})
\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1x}}=\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\left(\boldsymbol X+(\boldsymbol X_p+\dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol W_{1x}}\boldsymbol W_{1h} \odot (1-\boldsymbol H_{pp}^2))\boldsymbol W_{1h} \odot (1-\boldsymbol H_p^2) \right)로 수정합니다.

* 289페이지 마지막 식에서
\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1x}}=\boldsymbol X+\boldsymbol X \boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)+\boldsymbol X \boldsymbol W_{1h}\odot(1-\boldsymbol H_{p}^2)\odot\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2)+\cdots
\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol W_{1x}}=\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\left(\boldsymbol X+\boldsymbol X_p \boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)+\boldsymbol X_{pp} \boldsymbol W_{1h}\odot(1-\boldsymbol H_{p}^2)\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2)+\cdots \right)로 수정합니다.

* 290페이지 식 2번째 줄
=1+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2) \dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol b_1}
=1+\dfrac{\partial \boldsymbol Z_{1p}}{\partial \boldsymbol b_1}\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)로 수정합니다.
그 아래 다음 문장을 추가합니다. “앞에서와 같이 손실 함수를 포함하여 한 타임 스텝을 더 전개해 보겠습니다
그 아래 식 2개의 줄
=1+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2) (1+\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2)\dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol b_1})
=1+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)\odot\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2)+\cdots

\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\dfrac{\partial \boldsymbol Z_1}{\partial \boldsymbol b_1}=\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\left(1+(1+\dfrac{\partial \boldsymbol Z_{1pp}}{\partial \boldsymbol b_1}\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2))\boldsymbol W_{1h}\odot(1-\boldsymbol H_{p}^2)\right)
=\dfrac{\partial \boldsymbol L}{\partial \boldsymbol Z_1}\left(1+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)+\boldsymbol W_{1h}\odot(1-\boldsymbol H_p^2)\boldsymbol W_{1h}\odot(1-\boldsymbol H_{pp}^2)+\cdots\right)
로 수정합니다.

<케라스 창시자에게 배우는 딥러닝>
  • (p222) 코드 5-27의 2번째 줄 주석에서 ‘상위 8개 층의’를 ‘하위 8개 층의’로 정정합니다.(B***B 님)
감사합니다!
Reply all
Reply to author
Forward
0 new messages