일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- CSS
- JSP
- 문자와식
- JDBC
- 데이터분석
- 상속
- 오블완
- 머신러닝
- 중학1-1
- 컴퓨터비전
- 컴퓨터구조
- 중학수학
- 연습문제
- 티스토리챌린지
- 정보처리기사실기
- 데이터베이스
- 자바 실습
- 디버깅
- 딥러닝
- 혼공머신
- JSP/Servlet
- 자바스크립트심화
- SQL
- 자바
- 자바스크립트
- 개발일기
- html/css
- c언어
- 파이썬
- 정보처리기사필기
- Today
- Total
목록딥러닝 (70)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
순환 신경망 마지막 학습이 될 것 같다. 지금 공부하는 책은 기초 과정이니 아직 심화 과정의 책이 남아있지만 말이다. 순환층에 드롭아웃 적용하기 완전 연결 신경망과 합성곱 신경망에는 Dropout 클래스를 사용해 드롭아웃을 적용했다. 이를 통해 모델이 훈련 세트에 너무 과대적합되는 것을 막았다. 순환층은 자체적으로 드롭아웃 기능을 적용한다. SimpleRNN과 LSTM 클래스 모두 dropout 매개변수와 recurrent)dropout 매개변수를 가지고 있다. dropout 매개변수는 셀의 입력에 드롭아웃을 적용하고 recurrent_dropout은 순환되는 은닉 상태에 드롭아웃을 적용한다. 하지만 기술적인 문제로 인해 recurrent_dropout을 사용하면 GPU를 사용하여 모델을 훈련하..
순환 신경만에서 빼놓을 수 없는 핵심 기술인 LSTM과 GRU 셀을 사용한 모델을 만들어볼 것이다. 시작하기 전에이 절에서는 고급 순환층인 LSTM과 GRU에 대해 알아보겠다. 이른 층들은 앞에서 배웠던 SimpleRNN보다 계산이 훨씬 복잡하다. 하지만 성능이 뛰어나기 때문에 순환 신경망에서 많이 채택되고 있다.일반적으로 기본 순환층은 긴 시퀀스를 학습하기 어렵다. 시퀀스가 길수록 순환되는 은닉 상태가 담긴 정보다 점차 희석되기 때문이다. 따라서 멀리 떨어져 있는 단어 정보를 인식하는 데 어려울 수 있다. 이를 위해 LSM과 GRU 셀이 발명되었다. LSTM 구조 LSTM은 Long Short-Term Memory의 약자이다. 말 그대로 단기 기억을 오래 기억하기 위해 고안되었다. LSTM..
이어서 단어 임베딩을 사용하는 방법에 대해서 공부해 보겠다. 이것만 하면 2단원 학습은 마치게 된다. 단어 임베딩 사용하기 순환 신경망에서 틱스트를 처리할 때 즐겨 사용하는 방법은 단어 임베딩이다. 단어 임베딩은 각 단어를 고정된 크기의 실수벡트로 바꾸어 준다. 이런 오류가 떠서 코드를 이처럼 수정했다. 경고 메시지 Argument input_length is deprecated는 Embedding 레이어에서 input_length를 명시할 필요가 없다는 뜻이다. TensorFlow 및 Keras의 최신 버전에서는 입력 데이터의 길이를 자동으로 인식한다. 그다음 SimpleRNN 층과 Dense 층은 이전과 동일하다. 하지만 출력 결과 0으로 나온다. model2.summary() 결과..
순환 신경망을 훈련하는 내용을 학습해 보겠다. 순환 신경망 만들기책에 있는 코드 오류가 너무 많아서 다시 이전의 학습했던 코드를 수정하고 다시 만들어보기로 했다. 이제 드디어 출력이 잘 되었다. 순환 신경망 훈련하기 에러 메시지 "ValueError: The filepath provided must end in .keras (Keras model format). Received: filepath=best-simplernn-model.h5"는 ModelCheckpoint 콜백에 제공된 filepath 인자가 올바른 형식이 아님을 나타낸다. Keras는 전체 모델을 저장할 때 파일 경로가 '.keras'로 끝나기를 기대한다. 사용자 코드에서 파일 경로는 'best-simplernn-..
이번 시간에는 텐서플로를 활용해서 실습을 진행해보려고 한다. 시작하기 전에앞 절에서 순환 신경망의 작동 원리를 살펴보았다. 이번 절에서는 대표적인 신경망 문제인 IMDB 리뷰 데이터셋을 사용해 가장 간단한 순환 신경망 모델을 훈련해 보겠다.이 데이터셋을 두 가지 방법으로 변경하여 순환 신경망에 주입해 보겠다. 하나는 원-핫 인코딩이고 또 다른 하나는 단어 임베딩이다. 이 두 가지 방법의 차이점에 대해 설명하고 순환 신경망을 만들 때 고려해야 할 점을 알아보겠다.그럼 먼저 이 절에서 사용할 IMDB 리뷰 데이터셋을 적재해 보겠다. IMDB 리뷰 데이터셋IMDB 리뷰 데이터셋은 유명한 인터넷 영화 데이터베이스인 imdb.com에서 수집한 리뷰를 감상평에 따라 긍정과 부정으로 분류해 놓은 데이터셋이다...
조금 전에 기록했던 글이 모두 날아가서 다시 써야 할 것 같다. 이럴 때 공부 의욕이 가장 상실되지만 다시 하는 수밖에 없다.이어서 순차 데이터와 순환 신경망에 대해서 공부해보려고 한다. 아직은 이론 공부만 있지만 꼭 알아야 하는 개념이다. 셀의 가중치와 입출력순환 신경망의 셀에서 필요한 가중치 크기를 계산해 보겠다. 복잡한 메델을 배 울수록 가중치 개수를 계산해 보면 잘 이해하고 있는지 알 수 있다. 예를 들어 다음 그림처럼 순환층에 입력되는 특성의 개수가 4개이고 순환층의 뉴런이 3개라고 가정해 보겠다. 하나의 샘플은 시퀀스 길이(여기서는 단어 개수)와 단어 표현의 2차원 배열이다. 순환층을 통과하면 1차원 배열로 바뀐다. 이 1차원 배열의 크기는 순환층의 뉴런 개수에 의해 결정..
이번 시간에는 하이퍼 매개변수를 다루는 것과 자연 영상 인식에 대해서 학습해보려고 한다. 3. 하이퍼 매개변수 다루기하이퍼 매개변수는 신경망의 구조 또는 학습관 관련하여 사용자가 설정해야 하는 매개변수다 프로그램 7-4는 옵티마이저에 관련된 하이퍼 매개변수늘 SGD(learning_rage=0.01)과 Adam(learnging_rate=0.001)로 다르게 설정하고 어떤 값이 더 좋은지 비교하여 Adam이 월등히 좋다는 것을 알아냈다. 이처럼 하이퍼 매개변수를 잘 설정해야 신경망이 높은 성능을 발휘한다.하이퍼 매개변수의 최적값을 찾는 일을 하이퍼 매개변수 최적화라 한다. 하이퍼 매개변수 설정 요령신경망의 하이퍼 매개변수는 생각보다 많다. Dense 클래스에는 노드 개수를 정하는 units, 활성 함..
이번 장은 실습 프로그램이 있어서 나름 괜찮은 학습이 될 것 같다. 이전 절에서 프로그램 7-1을 통해 텐서플로가 제공하는 MNIST와 CIFAR-10 데이터셋을 확인하는 프로그래밍 실습을 했다. 여기서는 앞에서 배운 다층 퍼셉트론과 깊은 다층 퍼셉트론을 텐서플로로 구현하고 성능을 측정하는 실험을 한다. 1. 필기 숫자 인식다음 프로그램은 다층 퍼셉트론으로 MNIST를 인식하는 실험이다. 1980~1990년대의 다층 퍼셉트론 시대에 주로 사용하던 SGD 옵티마이저와 현대 딥러닝이 주로 사용하는 Adam 옵티마이저의 성능을 비교하는 실험도 한다. 다층 퍼셉트론으로 필기 숫자 인식텐서플로로 신경망을 학습하고 예측하는 첫 프로그래밍이다. 다층 퍼셉트론으로 MNIST 인식하기(SGD 옵티마이저) 이 코드는..
딥러닝 관련 이론 내용은 조금 지루하지만 그래도 공부를 이어가 보겠다. 앞 절에서 특징 벡터의 차원이 2이고 데이터셋 크기가 4인 단순한 OR 데이터셋으로 퍼셉트론의 분류 능력을 예시했는데, 퍼셉트론은 수백 차원 샘플이 수만 개인 분류 문제도 풀 수 있다고 증명도이어 있다. 그런데 퍼셉트론은 선형 분류기이기 때문에 그림 7-12a와 같이 선형 분리 가능한 데이터셋만 100% 정확률로 분류할 수 있는 결정적인 한계가 있다. 퍼셉트론은 그림 7-12b와 같은 선형 분리 불가능한 상황에서는 정확률이 낮을 수밖에 없다. 민스키와 페퍼트는 『Perceptrons』라는 저서를 통해 퍼셉트론의 한계를 체계적으로 지적했다. 그림 7-13a에 있는 XOR 문제를 제시하고 퍼셉트론은 이런 단순한 문제조차 풀지 못한다고..
어제는 밤에 늦게 취침했지만 2시 반에 일어나 평소처럼 공부를 시작해 본다. 그림 7-2의 기계학습 방법론에서 가장 성공하고 주류로 자리 잡은 모델은 신경망이다. 이 절에서는 1940년대에 태동하여 현재 딥러닝으로 발전하는 신경망 역사를 간략하게 살펴본다. 이어 최초의 성공적인 신경망 모델인 퍼셉트론을 통해 신경망에 대한 기초를 다진다. 신경망의 간략 역사1900년대 들어 인간 뇌에 대한 활발한 연구에 힘입어 뉴런의 정체가 조금씩 밝혀진다. 1946년에는 초당 3000회 가량 덧셈을 할 수 있는 세계 최초의 전자식 컴퓨터인 에니악이 탄생한다. 신경 과학자들은 컴퓨터로 인공 신경망을 구현하여 사람처럼 인식할 수 있는 기계를 만들려는 거대한 발상을 한다. 그림 7-9는 사람 뇌를 구성하는 뉴런과 퍼셉트..