일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JSP/Servlet
- 자바
- 중학수학
- CNN
- 데이터베이스
- 정보처리기사실기
- 자바 실습
- 컴퓨터비전
- 정수와유리수
- 연습문제
- 텍스트마이닝
- pandas
- 파이썬라이브러리
- numpy/pandas
- html/css
- C++
- 머신러닝
- CSS
- 중학1-1
- 딥러닝
- 정보처리기사필기
- 컴퓨터구조
- 코딩테스트
- SQL
- 운영체제
- 혼공머신
- 데이터분석
- 데이터입출력구현
- 파이썬
- 영어공부
- Today
- Total
목록딥러닝 (64)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
합성곱 신경망의 학습을 시각화하는 두 번째 방법은 합성곱 층에서 출력된 특성 맵을 그려보는 것이다. 이를 통해 입력 이미지를 신경망 층이 어떻게 바라보는지 엿볼 수 있다. 합성곱 층의 출력을 만들기 전에 케라스 함수형 API에 대해 먼저 알아보겠다. 함수형 API지금까지는 신경망 모델을 만들 때 케라스 Sequential 클래스를 사용했다. 이 클래스는 층을 차례대로 쌓은 모델을 만든다. 딥러닝에서는 좀 더 복잡한 모델이 많이 있다. 예를 들어 입력이 2개일 수도 있고 출력이 2개일 수도 있다. 이런 경우는 Seqeuntial 클래스를 사용하기 어렵다. 대신 함수형 API를 사용한다.함수형 API는 케라스의 Model 클래스는 사용하여 모델을 만든다. 간단한 예를 들어보겠다. 7장에서 만들었던 De..
이어서 합성곱 신경망을 사용한 이미지 분류 학습을 진행해 보겠다. 모델 컴파일과 훈련케라스 API의 장점은 딥러닝 모델의 종류나 구성 방식에 상관없이 컴파일과 훈련 과정이 같다는 점이다. 다음 코드는 완전 연결 신명망을 컴파일하고 훈련하는 코드와 거의 같다.Adam 옵티마이저를 사용하고 ModelCheckpoint 콜백과 EarlyStopping 콜백을 함께 사용해 조기 종료 기법을 구현한다. 얼핏 보아도 훈련 세트의 정확도가 이전보다 훨씬 좋아진 것을 알 수 있다. 손실 그래프를 그려서 조기 종료가 잘 이루어졌는지 확인해 보겠다. 검증 세트에 대한 손실이 점차 감소하다가 정체되기 시작하고 훈련 세트에 대한 손실은 점점 더 낮아지고 있다. 이 그래프를 기반으로 아홉 번째 에포크를 최적으로 생각할..
아침에 공부를 하다가 너무 졸려서 낮잠을 무려 4시간 반이나 자고 오후 늦게 일어나고 말았다. 가끔씩 이렇게 잠이 많이 필요한 날이 있다. 일어났을 때는 시간낭비를 굉장히 많이 한 것 같아 스스로에게 화가 나기도 했지만 다시 마음을 회복하며 공부의 자리에 앉아본다.사실 아침에 학교 수업의 영상을 들었지만 생각했던 것만큼 의미 있는 수업이 아니라서 무척 실망스러웠던 것 같다. 그리고 차라리 수업을 듣지 말고 책 두 권으로 학습을 진행할까 고민했던 것 같다. 그럼에도 공부를 진행해야겠다고 생각했다. 난 강의보다는 책으로 훨씬 더 잘 이해를 하는 편이라는 걸 알게 되기도 했다. 소리는 금방 들으면 잊어버리고 무슨 말인지 이해가 잘 안 된다. 하지만 글자는 분명하고 여러 번 반복해서 읽을 수 있다는 장점이 있..
이어서 케라스 합성 층부터 학습을 진행해 보겠다. 케라스 합성곱 층케라스 층은 모두 keras.layers 패키지 아래 클래스로 구현되어 있다. 합성곱 층도 마찬가지다. 특별히 입력 위를 (왼쪽에서 오른쪽으로, 위에서 아래로) 이동하는 합성곱은 Conv2D 클래스로 제공한다.Conv2D 클래스의 첫 번째 매개변수는 필터의 개수이다. kernel_size 매개변수는 필터에 사용할 커널의 크기를 지정한다. 필터의 개수와 커널의 크기는 반드시 지정해야 하는 매개변수이다.마지막으로 밀집층에서처럼 활성화 함수를 지정한다. 여기서는 렐루 함수를 선택했다. 합성곱 신경망의 정의는 무엇일까? 일반적으로 1개 이상의 합성곱 층을 쓴 인공 신경망을 합성곱 신경망이라고 부른다. 꼭 합성곱 층만 사용한 신경망을 합성곱 ..
이제 드디어 합성곱 신경망에 대해서 공부할 시기가 왔다. 여기서부터는 다시 학교 수업에 올라온 강의 영상을 들으면서 공부를 진행할 생각이다. 그리고 지난번에 강의 영상이 없는 줄 알고 혼자서 코드 보면서 학습했던 내용이 있는데 그 부분도 선생님이 올려주신 게 있어서 거기서부터 내용을 추가하며 다시 학습을 진행할 생각이다.그래도 선생님들이 나름 성실하게 잘 가르쳐주시는 편이다. 컴퓨터 비전을 강의하셨던 선생님들은 정말 못 가르치고 마음에 안 들었지만 말이다. 이번 단원에서는 합성곱 신경망을 구성하는 기본 개념과 동작 원리를 배우고 간단한 합성곱, 폴링 계산 방법을 익힌다. 시작하기 전에로지스틱 회귀의 성능은 81% 정도였는데 딥러닝의 성능은 87%로 크게 높아졌다. 이 아이디어를 딥러닝에 적용해 보는 학..
이번이 케라스의 마지막이 된다. 마지막까지 힘내서 잘 마무리해 볼 것이다. tf.data.Dataset 클래스(이하 'Dataset 클래스')는 딥러닝 모델의 데이터셋 구축을 보다 편리하고 체계적으로 만들어주는 유틸 클래스다. Dataset 클래스가 제공해 주는 다양한 기능을 활용하여 윈도우, 배치, 셔플 등의 다양한 기능을 손쉽게 구성할 수 있으며 편리하다. 그렇기에 다양한 오픈 소스 예제에서 흔히 볼 수 있다.하지만 Dataset 클래스 메서드의 기능을 잘 이해하고 있지 않다면, 데이터셋 구성이 의도한대로 구현되지 않기 때문에 세부 기능과 역할에 대하여 미리 숙지하는 것이 바람직하다. 1. as_numpy_iterator생성된 Dataset 클래스를 넘파이 배열로 반환한다. Dataset 클래스는..
여기서부터는 혼공책에서 공부하지 못했던 내용이라 잘 이해할 수 있을지 조금 걱정이 된다. 그래도 여기까지 왔다면 케라스에 대해 어느 정도 잘 이해한다는 증거이다. 이제 학습을 시작해 본다. 1. 함수형 API(Functonal API)함수 형태로 딥러닝 모델을 정의하면 다양한 모델 구조를 구현할 수 있다. 여러 층을 시퀀스 형태로 연결하는 Sequential API와 다르게, Funtional API는 복잡한 구조의 모델을 정의할 수 있다. 이 그림과 같이 함수의 입력 매개변수를 여러 개 갖는 다중 입력, 함수의 return 값을 여러 개 갖는 다중 출력, 같은 레벨에 여러 개의 층을 배치하여 입력과 출력을 공유하는 구조도 가능하다.다음 예제는 기존에 Sequential API로 구현한 mnist 분..
이제 모델을 저장하고 불러오는 방법을 학습해 보겠다. 예제 실습을 위해 mnist 데이터셋을 불러오고, 앞에서 사용한 신경망 모델을 활용하여 모델 훈련을 먼저 완료한다. 모델을 파일로 저장훈련을 종료하여 가중치가 업데이트된 모델 인스턴스를 저장할 수 있다. save() 메서드를 사용하는데, save() 메서드를 호출할 때 저장할 파일의 디렉터리를 포함하는 파일명을 매개변수로 지정한다. 모델을 저장하는 형식은 HDF5 포맷과 SaveModel 포맷 두 가지가 있다. 모델을 저장할 파일명이 .h5 확장자를 포함하는 경우는 모델이 HDF5 포맷으로 저장한다. 이 파일 형식은 대용량의 데이터를 저장하기 위한 파일 형식이다. 저장된 모델 복원tensorflow.kerase.models.load_model()..
콜백도 이미 공부한 내용이지만 이 책에서는 매우 자세하고 깊이 있게 다루고 있다. 콜백은 모델을 훈련할 때 보조적인 작업을 수행할 수 있도록 도와주는 객체다. 모델을 훈련할 때 사용하는 fit() 메서드에 callbacks 매개변수로 지정할 수 있다. tensorflow.keras.callbacks 패키지 내 다양한 콜백이 정의되어 있다. 이중 가장 많이 활용하는 콜백 함수 몇 가지를 소개한다. 앞에서 사용한 mnist 데이터셋을 다시 불러오고, Dense 레이어로 구성된 모델을 정의하고 컴파일한다. 1. 모델 체크포인트모델 체크포인트는 가장 많이 활용되는 콜백이다. 모델 훈련 시 콜백으로 지정해 줄 수 있으며 epoch 별 모델의 가중치를 저장한다. 저장할 때 마치 체크포인트를 생성하듯 미리 정해..
단순 신경망 훈련에 대해서 공부해 보겠다. 먼저 주요 용어부터 학습해 볼 것이다. 관련 용어 선형 회귀회귀 분석이란 하나 이상의 독립변수들이 종속변수에 미치는 영향을 추정하는 통계 기법이다. 그중에서도 단순선형회귀 모형은 하나의 X가 Y에 미치는 영향을 추정하며 1차 함수 관계로 나타낼 수 있다.y = ax + b 중학교 수학 시간에 배운 1차 함수식을 떠올려 보자. 1차 함수식의 X는 독립변수, Y는 종속변수다. 1차 함수식의 a는 기울기, b는 절편이라고 부른다. 기울기 a는 일차 함수 그래프의 기울기를 결정하고 절편 b는 그래프의 높낮이를 결정한다. 이번에는 텐서플로 케라스를 활용하여 단순선형회귀 모델을 직접 만들고 딥러닝을 학습한다. 이때 모델은 1차 함수식과 동일하다고 생각하면 된다. 모델의 ..