책 소개
자바스크립트와 TensorFlow.js 환경에서 머신러닝 구현
이 책은 머신러닝 개념서가 아니다. 자바스크립트와 TensorFlow.js 환경에서 머신러닝 구현을 위한 책이다. 기초부터 하나씩 다져가면서 점진적으로 머신러닝을 구현하는 시나리오를 갖고 있다. 소스 코드 한 줄마다 목적과 기능이 상세하게 설명되어 있다. 책을 따라가면 어렵지 않게 머신러닝을 단계적으로 이해하게 된다. 어렵고 멀게만 느껴졌던 머신러닝을 내 것으로 만들 수 있다.
머신러닝에 필요한 수학식을 단계적으로 설명
수학의 이해는 반드시 필요하지만, 머신러닝 구현에 필요한 범위가 있다. 이 책은 예제 코드를 통해 필요한 범위를 제시하며, 머신러닝 구현에 필요한 수학을 처음부터 단계적으로 다룬다. 머신러닝 구현에 필요한 수학 알고리즘을 TensorFlow.js에서 함수로 제공하므로 jQuery 함수를 호출하듯 TensorFlow.js 함수를 호출하면 된다. 이 범위의 수학 지식이 있으면 머신러닝을 구현할 수 있다.
책의 출판 시점에 관련된 분야(TensorFlow.js)의 도서가 없었다. 저자는 공부하면서 관련 도서가 없어 힘들었던 경험을 후배들에게도 물려주고 싶지 않아 최초의 TensorFlow.js 분야 책을 집필했다.
저자는 개발자로서, 개발자를 가르치는 선생님으로서 항상 개발 현장에 있었다. 개발과 강의 경험을 통해 개발자가 필요로 하는 핵심을 정리해 이 책에 담았다.
『머신러닝 TensorFlow.js JavaScript』는 머신러닝에 대한 단계적이고 자세한 설명을 통해 따라 하기만 하면 지식이 축적되도록 구성했다. 또한, 방대한 수학 지식 중 웹 개발자가 이해해야 하는 범위를 알려주는 등 많은 개발자의 고민을 쉽게 해결할 수 있는 길도 알려준다.
머신러닝을 배우려는 분,
자바스크립트, Node.js 개발자,
파이썬+TensorFlow 환경과 자바스크립트+TensorFlow.js 환경을 통합하려는 분 등
누구든지 목표를 이루고자 하는 의지만 챙겨오라. 의지를 가지고 책이 이끄는 대로 따라가다 보면 어느새 머신러닝을 내 것으로 만든 당신을 발견할 수 있다.
『머신러닝 TensorFlow.js JavaScript』를 통해 새로운 기회를 선점하여 보다 더 많이 발전하시길 바란다.
작가 소개
다양한 분야의 소프트웨어를 개발했으며, 항상 개발 현장에 있었다. 오랫동안 웹 요소 기술을 강의했으며, 특히 자바스크립트 강의는 매번 만석이다.
『몰입! 자바스크립트』, 『ECMAScript 6』를 포함하여 8권을 집필하였다. 저자는 많은 개발과 강의 경험을 통해 개발자가 필요로 하는 핵심을 알고 있다. 그것을 이 책에 담았다.
목 차
1부 TensorFlow.js
1. 개요
1.1. TensorFlow.js 개요
1.1.1. TensorFlow.js란?
1.1.2. TensorFlow.js 목적, 방향성
1.2. 머신러닝, 딥러닝
1.2.1. 머신러닝
1.2.2. 추론
1.2.3. 딥러닝
1.3. Tensor와 Flow
1.4. 개발자 관점에서의 TensorFlow.js
2. Tensor 생성
2.1. 함수 작성 기준
2.2. Tensor 생성
2.3. Tensor 출력
2.4. 값 타입
2.5. TypedArray 오브젝트
2.6. scalar, rank, shape
2.7. scalar Tensor 생성
2.8. 1차원 Tensor 생성
2.9. 다차원 Tensor 생성
3. 함수, 식, 행렬
3.1. 변수, 상수, 계수
3.2. 독립변수, 종속변수
3.3. 함수
3.4. 1차식, 2차식
3.4.1. 항, 차수
3.4.2. 1차식
3.4.3. 2차식
3.5. 벡터
3.5.1. 벡터 덧셈, 뺄셈
3.5.2. 벡터 브로드캐스팅
3.5.3. 내적
3.5.4. 외적
3.6. 행렬
3.6.1. 행렬 덧셈, 뺄셈
3.6.2. 행렬 브로드캐스팅
3.6.3. 행렬 곱셈
4. Tensor 연산
4.1. 산술연산
4.1.1. 산술연산 함수 목록
4.1.2. tf.Tensor 값 더하기
4.1.3. 다수의 tf.Tensor 값 더하기
4.1.4. 누적 합산
4.2. 논리연산
4.2.1. 논리연산 함수 목록
4.2.2. 상태에 따라 값 반환
4.2.3. true인 인덱스 반환
4.3. 수열
4.3.1. 수열 개념
4.3.2. 등차수열
4.3.3. 등비수열
4.3.4. 항수로 등차수열 생성
4.3.5. 차이로 등차수열 생성
4.3.6. 시그마, 파이
4.4. 초깃값 설정
4.4.1. 초깃값 설정 함수 목록
4.4.2. 초깃값 설정 함수
4.5. 수학식 함수
4.5.1. 수학식 함수 목록
4.5.2. 최솟값과 최댓값 사이의 값
5. Tensor Class
5.1. 함수 목록
5.2. shape 변환
5.2.1. 벡터, 스칼라로 변환
5.2.2. 랭크 변환
5.2.3. 값 타입 변환
5.2.4. shape 변환
5.3. 동기, 비동기 처리
5.3.1. 동기 방법으로 텐서 값 추출
5.3.2. 비동기 방법으로 텐서 값 추출
6. Tensor 추출, 변환
6.1. 함수 목록
6.2. 추출
6.2.1. 인덱스로 추출
6.2.2. 범위로 추출
6.3. 결합
6.3.1. Tensor 연결
6.3.2. Tensor 스택
6.3.3. 반복 복제
6.3.4. 순서 변경
6.4. 분할
6.4.1. 1차원 낮추어 분할
6.4.2. 지정한 수로 분할
6.5. 변환
6.5.1. 값 타입 변환
6.5.2. rank 확장, 압축
6.5.3. 앞뒤에 엘리먼트 삽입
6.5.4. shape 변환
6.6. 논리 AND, OR 비교
6.7. 최댓값, 최솟값
6.7.1. 최댓값, 최솟값
6.7.2. 최댓값, 최솟값 인덱스
6.8. 평균, 합계, 곱하기
6.8.1. 평균, 합계
6.8.2. 행, 열 곱하기
6.9. 난수 생성
6.9.1. 균등 분포 난수
6.9.2. 정규분포 난수 127
6.10. 변수 생성, 값 변경
7. 메모리 관리
7.1. 함수 목록
7.2. 메모리 정보
7.3. 메모리 해제
7.4. 스코프 메모리 해제
7.5. 메모리 해제 방지
8. TensorFlow.js 모델링
8.1. 모델, 트레이닝
8.2. 데이터 세트
8.3. 지도 학습
8.4. TensorFlow.js 모델
8.4.1. 모델 학습 단계
8.4.2. 모델에서 사용할 데이터 정의
8.4.3. 모델의 변수 정의
8.4.4. 모델 정의
8.4.5. 모델 학습
8.4.6. 모델 테스트
8.4.7. 모델 평가, 튜닝, 테스트
2부 선형 회귀
9. 선형 회귀
9.1. 개요
9.1.1. 선형
9.1.2. 회귀
9.1.3. 분류
9.1.4. 선형 회귀 모델
9.2. 선형 회귀 모델 구성
9.2.1. 선형 회귀 모델 데이터
9.2.2. 선형 회귀 모델 가설
9.2.3. 학습 측정 기준
9.3. 두 점 사이 거리
9.3.1. L1 Norm
9.3.2. L2 Norm
9.3.3. norm() 함수
9.3.4. 잔차
9.3.5. 최소제곱법
9.4. 손실함수
9.4.1. 손실함수 목적
9.4.2. 평균 제곱 오차
9.4.3. 모델 코드 분석
10. 경사 하강법 Ⅰ
10.1. 개요
10.2. 미분 개요
10.2.1. 수렴, 극한
10.2.2. 기울기, 평균변화율
10.2.3. 미분계수, 순간변화율
10.2.4. 미분과 모델 학습
10.3. 경사 하강법 알고리즘 분석
10.3.1. 알고리즘 분석 시나리오
10.3.2. 손실함수 값 계산
10.3.3. 역전파
10.3.4. 기울기 계산
10.3.5. 가중치와 바이어스 계산
10.4. 학습률
10.4.1. 수렴
10.4.2. 발산
11. 경사 하강법 Ⅱ
11.1. 배치 경사 하강법
11.2. 배치 사이즈
11.3. 확률적 경사 하강법
11.4. 미니배치 경사 하강법
11.5. Iris 데이터 세트
11.5.1. 붓꽃 데이터 세트 형태
11.5.2. 배치 사이즈와 학습률
11.6. 선형 회귀 손실함수
11.6.1. L1 손실함수
11.6.2. L2 손실함수
11.6.3. Huber 손실함수
11.6.4. Pseudo-Huber 손실함수
12. 옵티마이저
12.1. 지역, 전역 최솟값
12.2. 옵티마이저 목적
12.3. 옵티마이저 식
12.4. Momentum
12.5. Nesterov
12.6. AdaGrad
12.7. AdaDelta
12.8. RMSProp
12.9. Adam
12.10. AdaMax
13. 다중·다항 회귀 모델
13.1. 보스턴 하우징 데이터 세트
13.2. 다중 회귀
13.2.1. 다중 회귀 특징
13.2.2. 다중 회귀 가설
13.2.3. 다중 회귀 손실함수
13.2.4. 다중 회귀 행렬 형태
13.2.5. 다중 회귀 모델
13.2.6. 다변량 선형 회귀
13.3. 다항 회귀
13.3.1. 다항 회귀 형태
13.3.2. 다항 회귀 모델
13.4. 오버피팅
13.5. 노이즈
14. 선형 회귀 정규화
14.1. 정규화 개요
14.2. Lasso 회귀
14.3. Ridge 회귀
14.4. Elastic Net
3부 분류
15. 로지스틱 회귀
15.1. 개요
15.2. sigmoid 함수
15.3. log 함수
15.4. 로지스틱 회귀 가설
15.5. 로지스틱 회귀 손실함수
15.6. 로지스틱 회귀 모델
16. 활성화 함수
16.1. 개요
16.2. hardSigmoid 함수
16.3. step 함수
16.4. ReLU 함수
16.5. LeakyReLU 함수
16.6. ReLU6 함수
16.7. softplus 함수
16.8. tanh 함수
16.9. softsign 함수
16.10. ELU 함수
16.11. SELU 함수
17. 소프트맥스 회귀
17.1. 개요
17.2. softmax 함수
17.3. One-Hot 인코딩
17.4. 소프트맥스 회귀 손실함수
17.5. 소프트맥스 예측 결과 분석
4부 이미지 인식
18. 이미지 인식
18.1. Node.js 환경 설정
18.2. MNIST 데이터 세트
18.3. MNIST 모델
18.4. MNIST 모델 코드 분석
부록
1. TensorFlow.js 설치
2. 그래프 작성 방법
Index
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |