일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c언어
- 개발일기
- JDBC
- 순환신경망
- 중학1-1
- 중학수학
- CSS
- 상속
- JSP
- 정보처리기사실기
- 자바
- 딥러닝
- rnn
- 자바 실습
- 컴퓨터비전
- 컴퓨터구조
- 연습문제
- JSP/Servlet
- 자바스크립트
- 자바스크립트심화
- 머신러닝
- html/css
- 데이터분석
- ChatGPT
- 혼공머신
- 데이터베이스
- 디버깅
- 파이썬
- SQL
- 정보처리기사필기
- Today
- Total
목록전체 글 (1637)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
앞에서 simpleRNN, LSTM, GRU 순환 신경망 구조에 대해 간단하게 알아보았다. 이제 예제를 통해 순환 신경망을 활용하는 방법을 알아보자. 1. 임베딩컴퓨터는 우리가 사용하는 한글, 영어 등을 그대로 이해하지 못한다. 컴퓨터가 이해하는 벡터로 변경해야 하는데 그것을 임베딩(Embedding)이라고 말한다. 임베딩이 잘 될수록 모델의 성능 또한 높아지고 훈련도 잘되기 때문에 임베딩과 관련된 여러 가지 방법들이 개발되어 왔다.크게는 단어 수준의 임베딩(Word2Vec, FastText)과 문장 수준의 임베딩(Elmo, Bert, GPT 등)으로 구분할 수 있다. 단어 수준의 임베딩은 동음이의어를 구별할 수 없지만, 문장 수준의 임베딩은 사람처럼 문장의 맥락을 보고 이를 파악할 수 있다.단어 ..
여기서부터는 텐서플로 책으로 학습해보려고 한다. 3단원까지만 공부하고 점심을 먹으며 쉬어야겠다. 순환 신경망Recurrent Neural Network(Elman, 1990) 모델은 순차적인 정보 처리 신경망이라고 번역할 수 있다. 보통 약자인 RNN으로 부른다. 자연어 데이터, 음성 데이터와 이 순서가 있는 시퀀스(Sequence) 데이터 또는 시계열 데이터를 분석하는 데 적합한 신경망이다. 예를 들어 “함께 성장하는 커뮤니티를 만들고 싶다”라는 문장이 있다면 이전에 배운 완전연결 신경망(FC)이나 합성곱(CNN) 신경망에서는 순서 상관없이 데이터를 입력(Input)받는다. [그림 5-1]의 왼쪽 그림처럼 동시에 모델에 모두 입력된다.반면, 순환신경망(RNN)에서는 데이터 순서를 유지하면서 차례..
순환 신경망 마지막 학습이 될 것 같다. 지금 공부하는 책은 기초 과정이니 아직 심화 과정의 책이 남아있지만 말이다. 순환층에 드롭아웃 적용하기 완전 연결 신경망과 합성곱 신경망에는 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차원 배열의 크기는 순환층의 뉴런 개수에 의해 결정..
JSP와 서블릿 공부를 오후에 다 마치고 오늘 저녁부터 RNN 공부를 시작해보려고 한다. 하지만 저녁식사 후에는 무척 졸리기 때문에 얼마 하지 못하고 취침을 하게 될 것 같다.어쨌든 내일부터 본격적으로 언어지능 공부를 해 볼 것이다. 시작하기 전에 순차 데이터순차 데이터는 텍스트나 세계열 데이터와 같이 순서에 의미가 있는 데이터를 말한다. 예를 들어 "I am a boy"는 쉽게 이해할 수 있지만 "boy am a I"는 말이 되지 않는다. 또 일별 온도를 기록한 데이터에서 날짜 순서를 뒤죽박죽 섞는다면 내일의 온도를 쉽게 예상하기 어렵다. 지금까지 우리가 보았던 데이터는 순서와는 상관이 없었다. 예로 패션 MNIST 데이터를 생각해 보자. 이 데이터를 신경망 모델에 전달할 때 샘플을 랜덤하게 섞..
모든 코드를 다 작성했으니 이제 진짜로 잘 되는지 확인하고 SQL로 데이터베이스도 만들어볼 것이다. 오라클에서 작업하기 1. 영화 정보 테이블 생성영화 정보를 저장하는 테이블을 생성한다. 시퀀스를 이용하여 자동으로 번호를 부여하는 코드가 필요하다. 2. 영화 정보 추가 (INSERT)새로운 영화를 추가할 때 movie_seq를 사용하여 code 값을 자동으로 설정한다. 3. 영화 정보 조회 (SELECT)리스트 페이지에서 전체 영화 정보를 가져오는 SQL 쿼리 4. 영화 정보 저장하기 이클립스에서 코드 실행하기 1. 영화 목록 조회하기 2. 영화 정보 등록하기마음에 드는 영화 한 편을 등록한다. 여기서 다운 받은 포스트 이미지를 추가한다. 이렇게 파일을 ..