딥러닝 스터디 - 디비딥


케라스 창시자가 알려주는 딥러닝 1장 ~ 2장


스터디장님의 딥러닝 1, 2장 발표로 딥러닝의 개괄적인 부분을 다루었다. 발표 이후 스터디장님의 안건으로 회의를 거쳐 스터디 방향을 바꾸었다.

“캐글 프로젝트를 해보자”라는 스터디의 궁극적인 목표를 위해 이론은 각자 공부하고 본격적으로 캐글 문제를 해결한다. 모임에서는 왜 이렇게 풀었고 어떻게 하면 더 나은 모델을 만들 수 있을 지 논의한다. 앞으로 함께 풀 캐글 프로젝트를 고르기 위해 20분 정도 고민한 결과, 가장 재밌을 것 같은 프로젝트를 2개 정했다.


  1. 영화 수입 예측 문제

  2. 배틀그라운드의 경기장 위치 예측 문제


190317-deep




스터디 내용


딥러닝

  • 인공지능 > 머신러닝 > 딥러닝

  • 최근에서야 대중화됨 2014년 ~2016년

  • 인간의 뉴런처럼 ‘연속된 층’을 거친다.


작동 원리

  • 정확한 매핑을 위해 weight 파라미터가 붙는다.

  • loss function : 기대치에서 얼마나 벗어났는지 측정

  • 옵티마이저 : 역전파


SVM

  • 커널 메서드 활용 : 이미지 하나를 커널이라는 칸으로 나눠서 데이터 하나로 계산

  • 분류 문제로는 회귀, 이진 분류, 다중 분류 등이 있고 SVM은 그중 회귀와 이진 분류 문제를 다룬다.


Random Foreset

  • 인풋 데이터를 여러 결정 트리를 거쳐 분류한다.

  • SVM 다음으로 가장 유용한 알고리즘


딥러닝의 발전

  • 지금은 하드웨어 성능이 매우 좋아졌다.

  • SVM, 랜덤포레스트 외에 여러 알고리즘을 돌릴 수 있게 되면서 딥러닝이 빛을 발하기 시작했다.


Mnist

  • models.Sequential()을 통해 간단한 모델을 만든다.

  • fully connected dense layer : 각 층의 유닛들이 서로 모두 연결되어 있는 것.

  • CNN : convolutional newral network

  • CNN을 거쳐서 fully connected newral network로 연결된다. 연결시킬 때 1차원으로 만들어줘야 하기 때문에 flatten 함수를 사용해 3차원을 1차원으로 만든다.

※3차원 (60000, 28, 28) : 28*28이 6만개 ※레이어라고도 하고 필터라고도 한다.




Django View - 제네릭뷰를 활용한 CBV (ListView, DetailView)


제네릭뷰를 활용해 기초적인 ListView, DetailView를 만들었다. model, template_name 을 정해주면 해당 모델의 데이터 객체를 모두 불러올 수 있다. 정말 간단하다. 최고.


urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('blog/', views.request_index, name="home"),
    path('blog/book-review/', views.ReviewListView.as_view(), name="book-review"),
    path('blog/book/<int:pk>/', views.BookDetailView.as_view(), name="book-detail"),
]



views.py

class ReviewListView(ListView): 
    model = ReadingList
    template_name = 'myblog/review_list.html'

class BookDetailView(DetailView):
    model = Book 
    template_name = 'myblog/book_detail.html' 
    context_object_name = 'book'