김태영 의 케 라스 티스토리 
 타이키 모스 
 케 라스 시작 하 기 	 ( 3 ) 
 딥 러닝 개념 잡 기 	 ( 6 ) 
 레이어 개념 잡 기 	 ( 6 ) 
 레시피 따라 해 보 기 	 ( 10 ) 
 타이키 모스 2017 . 12 . 25 23 : 10 
 Jan 27 , 2017 • 김태영 
 케 라스 는 파이썬 으로 구현 된 쉽 고 간결 한 딥 러닝 라이브러리 입니다 . 딥 러닝 비전문가 라도 각자 분야 에서 손쉽 게 딥 러닝 모델 을 개발 하 고 활용 할 수 있 도록 케 라스 는 직관 적 인 API 를 제공 하 고 있 습니다 . 내부 적 으로 는 텐서 플로우 ( TensorFlow ) , 티아노 ( Theano ) , CNTK 등 의 딥 러닝 전용 엔진 이 구동 되 지만 케 라스 사용 자 는 복잡 한 내부 엔진 을 알 필요 는 없 습니다 . 직관 적 인 API 로 쉽 게 다층 퍼셉트론 모델 , 컨 볼루 션 신경망 모델 , 순환 신경망 모델 또는 이 를 조합 한 모델 은 물론 다중 입력 또는 다중 출력 등 다양 한 구성 을 할 수 있 습니다 . 
 케 라스 주요 특징 
 케 라스 는 아래 4 가지 의 주요 특징 을 가지 고 있 습니다 . 
 모듈 화 ( Modularity ) 
 케 라스 에서 제공 하 는 모듈 은 독립 적 이 고 설정 가능 하 며 , 가능 한 최소한 의 제약 사항 으로 서로 연결 될 수 있 습니다 . 모델 은 시퀀스 또는 그래프 로 이러 한 모듈 들 을 구성 한 것 입니다 . 
 특히 신경망 층 , 비용 함수 , 최적 화 기 , 초기 화 기법 , 활성 화 함수 , 정규 화 기법 은 모두 독립 적 인 모듈 이 며 , 새로운 모델 을 만들 기 위해 이러 한 모듈 을 조합 할 수 있 습니다 . 
 최소 주의 ( Minimalism ) 
 각 모듈 은 짥고 간결 합니다 . 
 모든 코드 는 한 번 훏어 보 는 것 으로 도 이해 가능 해야 합니다 . 
 단 반복 속도 와 혁신 성 에 는 다소 떨어질 수 가 있 습니다 . 
 새로운 클래스 나 함수 로 모듈 을 아주 쉽 게 추가 할 수 있 습니다 . 
 따라서 고급 연구 에 필요 한 다양 한 표현 을 할 수 있 습니다 . 
 파이썬 기반 
 Caffe 처럼 별도 의 모델 설정 파일 이 필요 없 으며 파이썬 코드 로 모델 들 이 정의 됩니다 . 
 이 멋진 케 라스 를 개발 하 고 유지 보수 하 고 있 는 사람 은 구글 엔지니어 인 프랑소와 쏠 레 ( François Chollet ) 입니다 . 
 케 라스 기본 개념 
 케 라스 의 가장 핵심 적 인 데이터 구조 는 바로 모델 입니다 . 케 라스 에서 제공 하 는 시퀀스 모델 로 원 하 는 레이어 를 쉽 게 순차 적 으로 쌓 을 수 있 습니다 . 다중 출력 이 필요 하 는 등 좀 더 복잡 한 모델 을 구성 하 려면 케 라스 함수 API 를 사용 하 면 됩니다 . 케 라스 로 딥 러닝 모델 을 만들 때 는 다음 과 같 은 순서 로 작성 합니다 . 다른 딥 러닝 라이브러리 와 비슷 한 순서 이 지만 훨씬 직관 적 이 고 간결 합니다 . 
 원본 데이터 를 불러오 거나 시뮬레이션 을 통해 데이터 를 생성 합니다 . 
 데이터 로부터 훈련 셋 , 검증 셋 , 시험 셋 을 생성 합니다 . 
 이 때 딥 러닝 모델 의 학습 및 평가 를 할 수 있 도록 포맷 변환 을 합니다 . 
 시퀀스 모델 을 생성 한 뒤 필요 한 레이어 를 추가 하 여 구성 합니다 . 
 좀 더 복잡 한 모델 이 필요 할 때 는 케 라스 함수 API 를 사용 합니다 . 
 학습 하 기 전 에 학습 에 대한 설정 을 수행 합니다 . 
 손실 함수 및 최적화 방법 을 정의 합니다 . 
 케 라스 에서 는 compile ( ) 함수 를 사용 합니다 . 
 훈련 셋 을 이용 하 여 구성 한 모델 로 학습 시킵니다 . 
 케 라스 에서 는 fit ( ) 함수 를 사용 합니다 . 
 학습 과정 살펴보 기 
 모델 학습 시 훈련 셋 , 검증 셋 의 손실 및 정확도 를 측정 합니다 . 
 반복 횟수 에 따른 손실 및 정확 도 추이 를 보 면서 학습 상황 을 판단 합니다 . 
 준비 된 시험 셋 으로 학습 한 모델 을 평가 합니다 . 
 케 라스 에서 는 evaluate ( ) 함수 를 사용 합니다 . 
 임의 의 입력 으로 모델 의 출력 을 얻 습니다 . 
 케 라스 에서 는 predict ( ) 함수 를 사용 합니다 . 
 손 글씨 영상 을 분류 하 는 모델 을 케 라스 로 간단히 구현 해 봤 습니다 . 가로세로 픽셀 이 28 x 28 인 이미지 를 입력 받 아 이 를 784 벡터 로 구성 한 다음 이 를 학습 및 평가 하 는 코드 입니다 . 이 간단 한 코드 로 93 . 4 % 의 정확 도 결과 를 얻 었 습니다 . 각 함수 의 설명 및 인자 에 대한 설명 은 여러 모델 을 실습 해 보 면서 하나 씩 설명 드리 겠 습니다 . 
 print ( '## training loss and acc ##') 
 # 7 . 모델 사용 하 기 
 print ( '## yhat ##') 
 ## training loss and acc ## 
 [ 0 . 68605235149065658 , 0 . 34716726491451261 , 0 . 29719433775146803 , 0 . 26708923313419025 , 0 . 24437546383142472 ] 
 [ 0 . 82138333333333335 , 0 . 90213333333333334 , 0 . 91591666666666671 , 0 . 92433333333333334 , 0 . 93113333333333337 ] 
 [ 0 . 229048886179924 , 0 . 93520000000000003 ] 
 ## yhat ## 
 [ [ 8 . 87035931 e - 05 1 . 47768702 e - 07 9 . 51653055 e - 04 3 . 75617994 e - 03 
 2 . 82607380 e - 06 4 . 90140701 e - 05 2 . 10885389 e - 08 9 . 94055033 e - 01 
 6 . 05004097 e - 05 1 . 03587494 e - 03 ] ] 
 왜 “ 케 라스 ” 인가 ? 
 케 라스 는 초기 에 ONEIROS ( Open - ended Neuro - Electronic Intelligent Robot Operating System ) 프로젝트 의 일부 로 개발 되 었 다고 합니다 . 오 네 이 로스 ( ONEIROS ) 의 복수 형 이 오네이로이 입니다 . 케 라스 ( κέρας ) 는 그리스어 로 뿔 을 의미 하 고 , 오네이로이 ( ονειρο ) 는 그리스어 로 꿈 을 의인 화 시킨 신 이 라는 의미 입니다 . 둘 다 그리스 신화 에 나오 는 단어 입니다 . 첫 강좌 인 만큼 가볍 게 그리스 신화 얘길 조금 해 볼까요 ? 
 그리스 신화 에 오네이로이 라고 불리 는 꿈 의 정령 들 이 있 습니다 . 오네이로이 는 헬리오스 의 궁전 근처 에 살 면서 두 개 의 문 을 통해 인간 들 에게 꿈 을 보냅니다 . 신 이 사람 들 에게 메시지 를 전할 때 오네이로이 에게 부탁 하 여 꿈 을 보낸다고 합니다 . 미래 에 성취 될 진실 은 뿔 로 된 문 으로 보내 고 거짓 은 상아 로 된 문 으로 보내 줍니다 . 즉 꿈 을 통해 미래 로 인도 하 는 역할 을 오네이로이 가 하 고 , 그때 뿔 ( 케 라스 ) 로 된 문 을 통해 꿈 을 보냅니다 . 신 이 심 기 가 좋 지 않 을 때 거짓 꿈 을 보내 기 도 하 죠 . 제우스 는 트로이 가 곧 망할 것 이 라는 거짓 꿈 을 아가멤논 에게 보내 고 , 아가멤논 은 이 꿈 을 뀐 뒤 트로이 를 공격 했 다가 그리스 군 패배 하 죠 . 거짓 꿈 이 니 상아 의 문 을 통해 전달 되 었 겠 죠 ? 거짓 꿈 을 믿 었 다가 패가망신 한 경우 입니다 . 
 딴 얘기 이 지만 오네이로이 는 밤 의 여신 닉스 와 잠 의 신 힙 노스 의 자식 들 이 고 수천 명 이나 됩니다 . 그 중 에 모르 페우스 ( Morpheus ) 라는 신 이 있 는 데 , 이 신 은 꿈 에선 인간 의 모습 으로 보이 며 , . 엄청나 게 정교 한 흉내 를 낸다고 하 네요 . 모르 페우스의 영어 발음 이 모피 어스 인데 , 영화 매트릭스 에선 이 이름 의 인물 이 네오 의 가상 세계 에 나타나 진실로 이끄 는 역할 을 하 죠 . 
 학습 된 모델 이 진실 을 알려 줄지 거짓 을 알려 줄지 는 사실 아무 도 모릅니다 . 학습 이나 검증 과정 에서 의 정확도 는 준비 된 데이터 셋 으로 측정 할 수 있 어도 실전 에서 는 그 결과 를 검증 하 기 쉽 지 않 죠 . 오네이로이 가 보낸 꿈 이 진실 의 문 으로 온 것 인지 거짓 의 문 으로 온 것 인지 모르 는 것 처럼 요 . 학습 된 모델 이 알려준 결과 가 진실 을 담 고 있 기 를 바라 는 염원 을 담 아 딥 러닝 라이브러리 이름 을 케 라스 ( 뿔 ) 라고 이름 이 지 어 진 것 같 습니다 . 
 케 라스 로 모델 을 만들 었 다고 하 면 실전 에서 좀 더 진실 을 얘기 해 줄 것 같 은 느낌 이 들 기 시작 하 죠 ? 그럼 이제 본격 적 으로 케 라스 를 알아봅시다 . 
 ( 본 문단 은 신화 에 박식 한 wingikaros 님 의 도움 으로 작성 되 었 습니다 ) 
 다음 : 맥 에서 케 라스 설치 하 기 
 다음 : 윈도우 에서 케 라스 설치 하 기 
 다음 : 데이터 셋 이야기 
 ' 케 라스 시작 하 기 ' 카테고리 의 다른 글 
 윈도우 에서 케 라스 설치 하 기 ( 0 ) 
 맥 에서 케 라스 설치 하 기 ( 0 ) 
 케 라스 이야기 ( 0 ) 
 딥 러닝 최신 동향 
 문장 ( 시계열 수치 ) 입력 다중 . .