Top

케라스로 완성하는 인공 신경망 기본기 [7가지 실전 예제와 노하우]

  • 지은이이준
  • ISBN : 9791161756066
  • 25,000원 (eBook 20,000원)
  • 2022년 01월 28일 펴냄
  • 페이퍼백 | 274쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/keras-ann

요약

이 책은 파이썬, 텐서플로 그리고 케라스를 활용해 인공 신경망을 손쉽게 구성하는 과정을 보여준다. 서로 다른 7가지의 실전 프로젝트에서 상황에 적합한 인공 신경망(FNN, CNN, RNN, LSTM 등)을 구성해보고, 최적의 인공 신경망을 얻어내기 위한 노하우를 하나씩 살펴본다. 다양한 주제를 다루고 있지만 난이도는 높지 않으며, 간단한 구현 속에서 성능이 향상돼 가는 인공 신경망을 볼 수 있다. 인공 신경망을 처음으로 직접 구현하거나 자신의 문제에 어떻게 적용할지 막막해 하는 독자들에게 추천한다.

이 책에서 다루는 내용

◆ 인공지능과 인공 신경망 기초 이론
◆ 인공 신경망을 사용하기 전 살펴봐야 할 기존 지도학습 기법
◆ 실무자가 알아야 할 인공 신경망 활용을 위한 실질적인 과정
◆ 파이썬 개발 환경 구성 방법과 트러블슈팅
◆ 케라스를 포함한 인공 신경망 학습 관련 파이썬 라이브러리 소개
◆ 인공 신경망 관련 노하우를 배울 수 있는 7가지 실전 프로젝트
◆ 파이썬 코드 제공(데이터 가공, 다양한 신경망의 생성/학습/저장)

이 책의 대상 독자

◆ 적은 노력으로 훌륭한 성능의 인공 신경망을 만들고 싶은 누구나
◆ 인공 신경망의 개념은 알지만 직접 만들기 막막한 분
◆ 인공 신경망을 생성/학습시킬 줄 알지만 성능에 자신이 없는 분
◆ 인공지능도 공부해봤다고 말하고 싶은 개발자

인공 신경망을 처음으로 직접 구현하거나 자신의 문제에 어떻게 적용할지 막막해 하는 독자들, 특히 공학도를 대상으로 집필했다. 이에 다양한 주제의 예제를 다루려고 노력했고, 공학 예제를 다수 다뤘다. 다양한 주제를 다뤘지만 난이도는 높지 않으며, 사용되는 인공 신경망은 단순한 형태를 가진다. 하지만 예제를 해결하면서 인공 신경망을 구성하는 방법과 성능을 향상시키는 방법을 알아갈 수 있으며, 이는 독자들이 세상에서 각광받고 있는 인공 신경망을 이해하는 데, 나아가 직접 다양한 신경망을 연구하는 데 도움을 줄 것이라 기대한다.
아울러 조금이라도 프로그래밍을 경험해본 독자를 대상으로 한다. 코드의 각 줄을 자세히 설명하진 않지만 어떤 언어든지 기본적인 문법을 이해한 경험이 있다면 코드의 원리는 충분히 이해할 수 있다. 특히 파이썬 사용 경험이 있고 튜플, 리스트의 처리에 익숙하다면 코드를 원활히 작성할 수도 있을 것이다. 인공 신경망의 구조를 결정하고 데이터를 준비하고, 학습 알고리즘을 선택하는 등의 작업이 인공 신경망의 성능에 영향을 주는데, 이러한 부분의 코드는 사실 간단한 편이며 높은 수준의 프로그래밍 실력을 요구하지 않으니 프로그래밍 경험이 조금이라도 있다면 케라스 활용에 과감히 도전해보자.
이 책을 접한 독자들이 자신이 직면한 문제에 적합한 인공 신경망을 구성하고 그 성능에 확신을 갖게 되길 바란다.

소개 이미지

상세 이미지

저자/역자 소개

지은이의 말

인공지능과 인공 신경망(ANN, Artificial Neural Network)은 날로 발전하며 그 적용 분야를 넓히고 있다. 수학적인 이론의 발전도 한몫하고 있지만 연산 장치의 발전이 인공 신경망의 수준에 미친 영향이 특히 엄청나다. 어느새 자동차의 완전 자율주행이 법적으로 허용될 것인가를 진지하게 논하는 시대가 왔다는 점을 생각하면 발전된 인공지능이 우리 곁에 멀리 떨어져 있지도 않음을 새삼 느낀다.
특히 인터넷상에는 인공지능과 인공 신경망을 친절하게 설명하는 글이 많다. 문제는 너무 많다는 것이다. 인공 신경망을 직접 구현하고자 컴퓨터 앞에 처음 앉은 사람은 어디서부터 시작할지 막막함을 느낄 수도 있다. 자신의 분야에 신경망을 어떻게 적용할지, 데이터 취득, 입력과 출력 변수의 설정과 가공, 신경망의 구조, 학습 기법 등 인공 신경망 설계자가 결정할 부분이 너무나 많다. 관련 조언을 해주는 글이 많지만 여러 군데에 산재돼 있어 인공 신경망을 처음 접하는 설계자가 모두 파악하기까지는 어려움이 있다.
이 책은 케라스라는 파이썬 오픈 소스 신경망 라이브러리를 활용해 인공 신경망을 구현하는 방법을 예제로 설명한다. 피드포워드 신경망(FNN), 합성곱 신경망(CNN), 신경망(RNN), LSTM의 구조와 연산 방법을 살펴본 뒤 이들을 활용해 7가지 실전 예제를 해결해본다. 기초적인 실전 예제로 부동산 가격 추측, 뉴스 분류 등의 문제를 다루고, 다양한 분야에서 인공 신경망을 활용하기 원하는 독자들을 위해 비선형 시스템의 묘사(상태 폐루프 추정), 고장 진단 등의 문제도 살펴본다. 이 책은 예제를 해결해 가며 인공 신경망의 구성 방법뿐만 아니라 인공 신경망의 성능 검토 방법과 성능 향상 방법을 설명한다.

지은이 소개

이준

서울과학고등학교를 졸업한 뒤 서울대학교 전기·정보공학부에서 학사와 석박사 통합 과정을 마쳤다. 새로운 것을 배우는 즐기고 취미를 만드는 것이 취미다. 학부 동기들과 함께한 스타트업에서의 프로그래밍 경험 덕에 인공 신경망과 쉽게 친해질 수 있었다. 학위 중에는 인공 신경망을 활용한 전동기의 온도 추정과 인버터 고장 진단을 연구했다. 지금은 삼성전자에서 반도체 설비와 친해져 가는 중이다.

목차

목차
  • 1부. 이론: 인공지능과 인공 신경망

  • 1장. 인공지능의 분류
  • 1.1 지도학습
  • 1.2 비지도학습
  • 1.3 강화학습

  • 2장. 지도학습 구현 기법
  • 2.1 선형 회귀
  • 2.2 단계적 회귀
  • 2.3 K-최근접 이웃
  • 2.4 결정 트리
  • 2.5 서포트 벡터 머신

  • 3장. 인공 신경망의 구조와 연산
  • 3.1 피드포워드 신경망
  • 3.2 합성곱 신경망
  • 3.3 순환 신경망

  • 4장. 인공 신경망의 생성 과정과 응용
  • 4.1 데이터 취득
  • 4.2 인공 신경망의 생성, 학습, 검증
  • 4.3 인공 신경망의 배포

  • 2부. 실습: 케라스를 활용한 인공 신경망 구현
  • 5장. 케라스 소개와 실습 준비
  • 5.1 텐서플로와 케라스
  • 5.2 인공지능 관련 파이썬 패키지
  • 5.3 파이썬, 파이참, 케라스 설치
  • 5.4 첫 인공 신경망 구현-집값 추정 회귀 문제

  • 6장. 회귀 문제
  • 6.1 피드포워드 신경망을 이용한 회귀-영구자석 전동기의 최고 효율 운전 조건
  • 6.1.1 문제 배경과 인공 신경망의 필요성
  • 6.1.2 데이터 불러오기와 전처리
  • 6.1.3 신경망 구성, 훈련, 검증
  • 6.1.4 배포-다른 환경에서 활용하기와 훈련된 모델의 모수 추출하기
  • 6.2 모수 정규화와 과적합 방지-노이즈를 갖는 데이터 추정
  • 6.3 연속된 신호의 추정과 출력 변수 가공-비선형 시스템 묘사
  • 6.3.1 시스템 상태 추정의 의의
  • 6.3.2 신경망을 이용한 비선형 시스템 묘사 모델 구현

  • 7장. 분류 문제
  • 7.1 합성곱 신경망의 활용-패션 이미지 분류
  • 7.1.1 패션 이미지 데이터셋 소개
  • 7.1.2 이미지 분류를 위한 인공 신경망 구현
  • 7.2 순환 신경망의 활용-뉴스 분류
  • 7.2.1 언어 처리를 위한 연산 기법
  • 7.2.2 뉴스 분류를 위한 인공 신경망 구현
  • 7.3 이상 진단 문제의 데이터 취득-전동기 인버터 고장 분류
  • 7.3.1 문제 배경과 인공 신경망의 필요성
  • 7.3.2 고장 분류 기법과 고장 데이터 취득
  • 7.3.3 신경망 구성, 훈련, 검증
  • 7.3.4 이상 데이터셋 취득과 진단에 관한 조언

  • 부록 A
  • A1. 파이썬 패키지 사용 예제
  • A2. GPU의 메모리 사용량 제한하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p.37 : 아래쪽 수식 ]

->

[ p.37 : 아래에서 2행 ]
여기에 측정 시점을 표시하는 아래첨자를 붙이고 정리하면 다음과 같이 전체 측정을 집약적으로 표현하는 행렬식을 얻는다.
->
여기에 측정 case를 표시하는 윗첨자를 도입하자. 가령 y2 는 두 번째로 측정된 출력 변수들의 집합이고, x4 는 네 번째로 입력했던 입력 변수들의 집합이다. 지수항을 의미하지 않으니 주의하자. t개의 측정 case를 함께 수식으로 묶어 표현하면 아래와 같다.

[ p.38 : 첫번째 수식 ]

->

[ p.148 : 표 6.3 ]

->