딥러닝은 자유롭게 모델을 만들어 사용할 수 있기에, 목표에 따라 모델의 형태가 많이 다르게 된다. https://www.asimovinstitute.org/neural-network-zoo/ The Neural Network Zoo - The Asimov Institute With new neural network architectures popping up every now and then, it’s hard to keep track of them all. Knowing all the abbreviations being thrown around (DCIGN, BiLSTM, DCGAN, anyone?) can be a bit overwhelming at first. So I decided to compo..
딥러닝 공부를 지속적으로 해왔지만.. 늘 모델만 어떻게 구성되어있는지 살펴보는 삶을 살고있었다. 마음 한 편 어딘가 가장 중요하다고 생각되는 오차 역전파에 대한 응어리(?)가 남아있었다. 오차 역전파의 원리는 알지만.. 대충 알고 있다는 생각이 들어 이번에 간단한 계산을 통해 완전히 이해해보려 한다. 이와 같이 딥러닝을 구성해보았다고 가정해보자. 이와 같이 y-hat 을 예측하는 모델이 있다고 가정해보자. 우리는 w1,w2 / w3,w4를 업데이트 하여 해당 모델에서 y-hat을 가장 잘 예측 할 수 있도록 만들어야 한다. 여기서 'w1,w2/ w3,w4를 업데이트' 한다는 개념이 가장 중요하다고 개인적으로 생각한다. 이유는 간단하다. 유튜브나 강의 들을 듣다보면, 아래와 같이 체인룰에 의하여 구한다고 ..
딥러닝을 시작하면 가장 처음 접하는 문제가 XOR구분 문제일 것이다. AND/OR는 밑에 그림[1-1]처럼 하나의 선을 통해 구분 할 수 있다고 대부분의 사이트에서 말한다. 직관적으로 봐도 한개로 충분히 나눠질 수 있다고 생각한다. 하지만, [그림1-2]에 XOR을 나누려면 선 두개를 그려 나눌 수 있다고 한다. 이런 언급을 한 뒤 [그림1-2] 오른쪽 그림처럼 hidden layer 한층에 node 2개 생성하고 학습을 통해, XOR의 문제를 풀 수 있다고 한다. 여기서 필자는 궁금증이 생겼다... "그래.. 문제 풀 수 있는건 알겠는데.. 인터넷에 떠돌아 다니는 [그림1-2]처럼 진짜 선을 그려서 구별하는거야?" "그럼 다른거 다 필요없고 파이썬을 통해 시각화 한 것을 보고싶어!" 라는 생각을 하게되..
지금까지 아이유/수지 대결을 성사시키기 위해 데이터/ 훈련 환경/ 모델까지 거의 모든 것을 준비했다. 이제 남은 건 가장 훌륭한 모델을 뽑아내는 것뿐. 거의 다 왔다. 끝이 보이기 시작한다? 오늘은 딥러닝을 하다 보면 한 번쯤은 볼 수 있는 오버 피팅(Overfitting)을 방지하고 조금이나마 억제하여 훌륭한 모델을 만들 수 있는 방법을 소개하고자 한다. 그럼 여기서 오버 피팅(Overfitting)이란 무엇인가? 간단히 말해 우리가 준비한 훈련 데이터에만 잘 작동하도록 만들어진 모델이다. 다시 말하자면 새로운 이미지를 제공하면 엉뚱하게 예측한다는 소리다. 이 현상을 막기 위해 정규화(L1, L2) / 학습률 조정 / 배치노멀라이즈 / 드롭아웃 / 앙상블 / 데이터 증량 .... 대략 이 정도 있다. ..
안녕하신가. 오늘은 흙수저들도 딥러닝을 할 수 있도록 환경을 만들어 보고자 한다. 여기서 흙수저란 CPU을 사용해서 현재 딥러닝을 학습하는 사람들이라고 생각하면 반드시 따라 해라. 꼭 반드시 해라... 14시간 걸릴 학습을 2~3시간 만에 끝낼 수도 있다. 그러니 반드시 해라. 일단 우리의 인자하신 Google께서 딥러닝을 할 수 있는 환경을 제공해 주신다.(박수) 이름하여 "Colab" 오늘은 Colab을 설정해보기로 하자. 자 일단 다들 구글 아이디가 있다는 전재하에 시작한다. (없다면 회원가입) 1. Google의 '드라이브'로 접속 2. 마우스 우 클릭 후 더 보기 > 연결할 앱 더 보기 클릭 3. google colab 설치 google colab을 검색해서 설치를 진행하시면 오른쪽과 같은 화면..
안녕하신가. 저번에 VGG16을 이용하여 Transfer-learning 전이 학습을 대~~충 봤다. 그 결과 70~85%가 나오는 기염을 토했다.(학습이 잘 된 모델이라곤 안 했다.) 하지만, 딥러닝에선 정확도 뿐만 아니라 그래프의 모양, loss 또한 살펴볼 필요가 있다. 이 그림을 보자. 이 그림은 learning rate에 따른 loss를 말한다. 즉, 여기서 빨간색의 그림과 유사하게 돼야 어느 정도 잘 학습된 모델이라고 볼 수 있고, 여기서 정확도도 따져 과대적 합(overfitting)인지 과소 적합(underfitting)인지 따져야 하지만... 넘어가자. 복잡하다. 여기선 그냥 loss가 빨간색 선처럼 줄어야 좋다고만 알고 있자. 여기서 저번 VGG16으로만 학습한 그래프를 보면 노란색 선..
저번 만든 CNN의 정확도는 60%대 ... 60%면 그냥 눈 가리고 아이유인지 수지인지 찍는 수준에 불과하다고 생각한다. 적어도 80~90% 정도는 나와야 어느 정도 구분할 줄 안다고 생각할 것이다. 정확도를 개선하기 위해 여러 가지 방법이 있다. 가장 기본적인 방법은 CNN을 더 깊고 넓게 쌓는 것. 하지만, 컴퓨터의 사양이 어느 정도 돼야 할 수 있을 것이고, training 시간도 GPU가 아닌 이상 엄청나게 오래 걸릴 것이다. 하지만 필자는 노트북으로 딥러닝을 하고 있다. 즉, GPU/좋은 성능의 컴퓨터가 아니라는 의미이다. 이런 사람들은 어떻게 해야 할까? 제목에도 써 놓았듯 'VGG16' 모델을 사용하는 것이다. 간단히 'VGG16'을 설명해 보자면.... CNN으로 이미지(고양이, 강아지,..
저번엔 티처블 머신을 사용하여 빠르고 간단하며 강력한 모델을 맛봤습니다. 이젠 간단하지만은 않습니다. 하지만 저는 직업도 전문가도 아닌 취미로 하는 것이기에 최대한 간단하게 글을 써보겠습니다. CNN 예제의 대표주자 MNIST, 검색해보시면 손쉽게 누구나 따라 할 수 있습니다. 한번 해보고 오시면 도움이 되겠죠? 자, 만약 MNIST를 해보셨거나, CNN을 검색해보신 분들은 위와 같은 그림을 한 번쯤을 봤을 겁니다. 이걸 보고 있으면 CNN이 어떤 건지는 대강 알지도 모르지만(난 잘 모르겠음), 정작 우리에게 필요한 건 눈으로 보이는 코드라고 생각합니다. 코드로 바로 넘어가죠. #코드1 # 모델 구성 new_model = models.Sequential() # 들어오는 이미지는 100 100 3 / Co..
- Total
- Today
- Yesterday
- 욜로
- 오류
- YOLOv8
- 알고리즘
- java
- c3k2
- 어탠션
- github
- DeepLearning
- 딥러닝
- 오블완
- 깃
- YOLO
- 뜯어보기
- GNN
- CNN
- 백준
- 티스토리챌린지
- 자바
- 디텍션
- 도커
- yolov11
- Tree
- GIT
- 정리
- 초보자
- python
- docker
- 이미지
- V11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |