더북(TheBook)

점곱의 장점은 두 가지입니다. (1) 변수 totals에 할당하는 부분이 크게 개선되었고 (2) 계산하는 코드를 전혀 수정하지 않고도 비용과 개수를 임의로 확장할 수 있습니다. 중간에 수기로 +40을 붙여 놓은 부분을 발견했을 수도 있겠습니다. +1 트릭을 또 사용하고 싶지 않아서 사용했는데요. +1 트릭을 써도 됩니다.

그런데 수학 수업에서 자주 일어나는 일이 생겼습니다. 앞서 반복 합산부터 dot까지 코드를 줄여 가면서 보았던 것처럼 복잡한 수식을 쪼개면 디테일이 가려져 잘 드러나지 않습니다. 여기에서 일어난 일을 설명할게요. 먼저 상세한 변수 이름을 제거하고 알려진 값을 일반 식별자로 대체하여 추상화합니다.

y = 80x3 + 10x2 + 5x1 +40

y = w3x3 + w2x2 + w1x1 + w0·1

코드에서는 한발 더 나아가 wx 합을 점곱으로 대체합니다.

y = w[3, 2, 1]x + w0·1

수상해 보이는 w의 아래 첨자 [3, 2, 1]은 모든 가중치를 사용하지 않는다는 것을 의미합니다. 즉, 좌변에서 w0을 사용하지 않는 것이지요. w0은 우변에 있고 여기에 1이 곱해집니다. 이것은 단 한 번만 사용됩니다. 화룡점정은 +1 트릭입니다.

y = wx+

요약하면 y = w3x3 + w2x2 + w1x1 + w0 대신 y = wx+을 쓰는 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.