일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 실습
- 상속
- 자바
- 정보처리기사실기
- 쇼핑몰홈페이지제작
- 중학1-1
- JSP
- 컴퓨터비전
- 연습문제
- 중학수학
- 순환신경망
- JSP/Servlet
- 자바스크립트
- 개발일기
- 스프링프레임워크
- 데이터베이스
- 데이터분석
- 타입스크립트심화
- SQL
- 자바스크립트심화
- 딥러닝
- html/css
- JDBC
- 파이썬
- 정보처리기사필기
- ChatGPT
- rnn
- 머신러닝
- 혼공머신
- 디버깅
- Today
- Total
목록인공지능/딥러닝 (99)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
조금 전에 기록했던 글이 모두 날아가서 다시 써야 할 것 같다. 이럴 때 공부 의욕이 가장 상실되지만 다시 하는 수밖에 없다.이어서 순차 데이터와 순환 신경망에 대해서 공부해보려고 한다. 아직은 이론 공부만 있지만 꼭 알아야 하는 개념이다. 셀의 가중치와 입출력순환 신경망의 셀에서 필요한 가중치 크기를 계산해 보겠다. 복잡한 메델을 배 울수록 가중치 개수를 계산해 보면 잘 이해하고 있는지 알 수 있다. 예를 들어 다음 그림처럼 순환층에 입력되는 특성의 개수가 4개이고 순환층의 뉴런이 3개라고 가정해 보겠다. 하나의 샘플은 시퀀스 길이(여기서는 단어 개수)와 단어 표현의 2차원 배열이다. 순환층을 통과하면 1차원 배열로 바뀐다. 이 1차원 배열의 크기는 순환층의 뉴런 개수에 의해 결정..
JSP와 서블릿 공부를 오후에 다 마치고 오늘 저녁부터 RNN 공부를 시작해보려고 한다. 하지만 저녁식사 후에는 무척 졸리기 때문에 얼마 하지 못하고 취침을 하게 될 것 같다.어쨌든 내일부터 본격적으로 언어지능 공부를 해 볼 것이다. 시작하기 전에 순차 데이터순차 데이터는 텍스트나 세계열 데이터와 같이 순서에 의미가 있는 데이터를 말한다. 예를 들어 "I am a boy"는 쉽게 이해할 수 있지만 "boy am a I"는 말이 되지 않는다. 또 일별 온도를 기록한 데이터에서 날짜 순서를 뒤죽박죽 섞는다면 내일의 온도를 쉽게 예상하기 어렵다. 지금까지 우리가 보았던 데이터는 순서와는 상관이 없었다. 예로 패션 MNIST 데이터를 생각해 보자. 이 데이터를 신경망 모델에 전달할 때 샘플을 랜덤하게 섞..
딥러닝 모델은 이미지를 분류하는 문제를 잘 해결할 수 있다. 여기서 갖는 의문은 딥러닝 모델이 이미지의 어떤 부분을 인식해서 분류하는지이다. 예를 들어 강아지와 고양이를 분류하는 딥러닝 모델은 해당 이미지의 어떤 특징을 포착하는지 알 수 없다. 이런 관점에서 소개한 개념이 Grad CAM이다. 위의 그림처럼 개와 고양이가 함께 있는 사진을 보여주면 해당 모델은 어떤 선택을 할까? 이미지넷 대회의 딥러닝 모델은 입력 이미지에서 하나의 클래스만을 예측하는 것으로 설계되었기 때문에, 개 또는 고양이로 해당 이미지를 분류한다.Grad CAM을 사용하면 모델이 이미지의 어떤 부분을 중심적으로 관찰하고 있는지 확인할 수 있다. 따라서 모델이 개라고 분류한다면 이미지의 특정한 위치에서 개의 특징을 잡아내고 있다는 가..
이어서 스타일 변환에 대한 학습을 이어가볼 것이다. 스타일 변환 실습해보기 Style Loss의 Ground True 값을 미리 구하고, 출력 값의 형태를 확인한다. 추출된 스타일 특성맵을 시각화한다. Content Loss의 Ground True 값을 구한다. 추출된 콘텐츠 특성맵을 시각화한다. Gram Matrix 함수를 정의한다. 스타일 변환을 적용할 남산타워 이미지를 입력값으로 지정한다. 옵티마이저를 Adam으로 사용하고 스타일 변환 모델을 학습한다. 주의할 점은 입력 이미지로 콘텐츠 이미지를 사용하지만, 반드시 텐서로 변환해야 한다. 이렇게 하면 Gradient 값을 구해 입력 이미지를 변경하여 새로운 스타일로 변환할 수 있다. 책에 있는 코드가 잘못되어서 ..
스타일 변환에 대해서 학습해 보기로 하자. 스타일 변환은 두 장의 서로 다른 이미지를 사용하여 새로운 이미지를 합성하는 방법이다. 스타일 전이라고도 부른다. 합성곱 신경망을 통해 각 레이어에서 추출되는 다양한 특징을 이용한다. 처음에 입력으로 주어지는 두 장의 이미지 중에서 하나는 콘텐츠 이미지로써 이미지의 구조와 형태를 나타내는 콘텐츠를 추출한다. 다른 이미지는 스타일 이미지로써 이미지 고유의 스타일만을 추출한다.이처럼 각기 다른 두 장의 이미지에서 출출된 콘텐츠와 스타일을 하나로 결합하면 콘텐츠 이미지의 기본 형태를 유지하면서 스타일이 변환된 새로운 이미지를 얻을 수 있다. 스타일 변환 실습해보기사전 학습된 모델을 활용해 스타일 변환을 구현한다. 처음부터 모델을 학습하려면 많은 그림 데이터와 오..
조금 전에 실행이 안 되는 코드가 있어서 무척 마음이 안 좋았다. 코드가 틀려서 안 되는 것이 아니라 계속해서 코랩을 실행 중에 중단이 되었다. 인터넷은 잘 연결되고 쿠키와 모든 기록도 삭제했음에도 여전히 되지 않았다.아무튼 조만간 이 문제를 반드시 해결해 볼 것이다. 이제 GPU를 쓰기가 겁나며 또 코드가 중단되면 어떡하나 하는 걱정이 들기도 하다. 그래도 다음 학습을 하는 데까지 진행해 보려고 한다. GAN에 대하여2014년 굿펠로 등에 처음 소개된 GAN(Generative Adversarial Network)은 생산적 적대 신경망이리고 번역할 수 있다. '생산적'이라는 것은 Gererator(생산자)가 학습에 필요한 데이터를 만드는 것을 나타내고, '적대적'이라는 것은 만들어지는 데이터가 Di..
지금까지 학습한 내용을 통해서 딥러닝 모델이 깊고, 넓고, 학습할 파라미터의 수가 많으면 학습이 잘 된다는 사실을 배웠다. 마치 인간의 뇌가 다른 동물과 달리 주름이 많은 것처럼, 파라미터 수가 많을수록 딥러닝 모델 학습이 잘 될 확률이 높아진다.하지만 딥러닝 모델을 실무에 적용하려면, 파라미터 개수가 많은 넓고 깊은 모델을 사용할 수 없는 경우까 많다. 예를 들어 CCTV와 같은 작은 IoT 디바이스에서 촬영한 이미지로부터 객체를 검출하는 모델을 탑재해야 하는 경우, 사용할 리소스는 굉장히 제한적이다. 고성능 CPU나 GPU를 사용할 수 없고 디바이스에 내장된 메모리도 작은 편이기 때문이다. 이럴 때는 어떻게 해야 할까? 파라미터 개수가 많은 큰 모델이 선생님이 되어 크기가 작은 모델을 가르치는 개념으..
이제 오늘 오후에는 책으로 합성곱 신경망을 학습하고 모두 끝낼 생각이다. 아침에 예배를 갔다 와서 새벽에 하지 못했던 운동도 하고 샤워도 하니 개운하니 정말 좋다.점심을 먹기 전에 잠깐 공부를 하며 워밍업을 한 후 식사 후에 나머지 부분을 하게 될 것 같다. 이미지 분할에 대하여이미지 분할 또는 세그멘테이션은 이미지를 구성하는 모든 픽셀에 대해 픽셀 단위로 분류하는 것이다. 즉, 모든 픽셀은 어떤 클래스에 속한다. 예를 들어 배경 클래스와 객체 클래스로 구성된 이미지가 있다면, 모든 픽셀은 배경 또는 객체 중 하나로 분류된다. 이렇게 모든 픽셀에 대한 정답 클래스를 레이블 처리한 데이터셋을 가지고, 딥러닝 모델을 훈련시키면 정답 클래스를 알지 못하는 새로운 이미지에 대해서로 배경과 객체를 분리할 수 있..
이미지의 특정 부분을 채우는 실습을 진행해보겠다. 이미지 인페인핑 실습해보기 인페인팅과 포즈 중심의 사진을 만들 수 있는 라이브러리를 설치한다. 그런 다음 이 모델을 사용할 수 있는 함수와 파리프라인 클래스를 추가해준다. 자세한 이야기는 지금은 어차피 이해하지 못할테니 생략한다. 이제 사진을 하나 가져와서 편집해보려고 한다. 수업 시간에는 선생님들의 사진을 가져와서 편집했지만 블로그에 올리기는 그래서 무료 이미지를 하나 가져왔다. 난 동물을 좋아하니 동물 사진을 하나 다운 받았다. 사진 편집해보기 사실 포토샵으로 하면 더 편리하겠지만 요즘 포토샵은 모두 유료 버전으로 바뀌어서 사용할 수 없게 되었다. 무료로 설치했던 것들도 다 걸러져서 켜기만 하면 이상한 창이 뜬다. 그리고 개발 공부를..
이제 이미지 생성 모델 실습을 진행해 보겠다. 지금까지 개념 학습을 하느라 고생이 많았으니 이번에는 조금 더 재미있는 수업을 시작해 보겠다. Stable Diffusion 기초 실습 자연어를 이해하기 위한 transformers를 설치한다. 글자를 숫자로 바꾸는데 일조하는 것 중 하나이다. cuda를 사용해 GPU로 계산되도록 생성한다. 프롬프트 이미지를 생성하는데 프롬프트를 생성하는 것이 까다롭기에 참고할만한 사이트를 소개한다. 프롬프트 참고 사이트 Civitai: The Home of Open-Source Generative AIExplore thousands of high-quality Stable Diffusion & Flux models, share your AI-gener..