기본 콘텐츠로 건너뛰기

AI) DO it 딥러닝 입문 책으로 딥러닝 복습 중

2020년 겨울에 예습삼아 했었는데
이제 대학원 2학기가 끝나고 같이 다시 공부하기
[2020년 겨울]
4장의 개요
 오 진짜 딥러닝 이야기로 들어가는 구나 싶어서 신기했다.
1.
퍼셉트론
 : 로지스틱 회귀를 이해하기에 앞서 초창기 인공지능 
알고리즘으로 퍼셉트론이 가장 먼저 소개되었다. 
개론서에서 자주 본 단어인데 어렴풋이 뉴런과 컨셉이 
비슷하다라고 주워들어 알고 있었다. 이런 아이디어를 내는 
사람들이 참 신기해서 감탄했었던 것이 기억난다. 
  1) 퍼셉트론은 
    선형회귀와 비슷한데 마지막에 이진분류를 위한
 계단함수를 통과시키는 것이 다르다고 한다. 이걸로 
 가중치와 절편을 업데이트 한다,
   계단함수는 진짜 계단처럼 생겼다. 선형함수를 통과해서
 나온 Z값에 따라 양성클래스(1) 음성클래스(-1)로 
 결과값이 나오기 때문이다. 
   선형함수를 통과한 결과값 (Z)가 푸르딩딩, 푸르스름, 
퍼런, 시퍼런 이면 
“파랑색”으로 분류해버리고, 붉으스름, 시뻘건, 새빨간, 
북그죽죽이면 “빨강색”으로 분류하는 역할을 계단함수가 
필터처럼 해주는 것 같다. 
   그 결과를 가지고 가중치와 절편을 업데이트 한다.
   시그모이드 함수랑 비슷하게 느껴진다. 시그모이드
 함수랑 같은 것인가?!
  2) 여러개의 특성 사용하기
     대학원에서는 특성이 2개 정도 나오고 여러개의 특성은 
오차역전파로 할 수 있긴하다!  로 책이 끝났엇다.
    생각해보면 키 몸무게 뿐만 아니라 키 몸무게 성별
 생활습관 등 다양한 특성을 활용해야 하는 것이 훨씬 많을 것이다. 
    이 책에서는 특성이 n개인 선형함수를 시그마로 
표기한 식을 보여준다.
4-5 모델 훈련과 성능평가를 위한 테스트 
     x_train, x_test, Y_train, y_test = train_test_split(x,y,stratify=y, test_size=0.2


 대학원에서는 3장까지 내용만 배웠다. 책은 “아무것도 모르고 
시작하는 인공지능 첫걸음” 4장부터는 3장에서 배운 선형회귀를
 확장하여 분류 모델을 만든다. 말 그대로 데이터를 분류하는 
모델이다. 암인지 아닌지 사과인지 아닌지 처럼 이진분류를 
배운다고 한다. 이진분류를 위해 필요한 
“로지스틱 회귀”(logistic regression)이 주인공이다.
 얼핏 4장의 시작하는 부분에 “퍼셉트론”이란 말이 나오는 것보니

      훈련을 위해 데이터를 훈련세트와 데이터 세트로 나누는데
     일단 데이터 1000개중에 300개 700개 뚝 짤라서 하는게 아니다.
     일단 섞는다. 과일 갈은 쥬스를 친구랑 나눠먹는데 맛있는 과육이 
     가라앉아있을 수 있으니 한 번 쉐이크하고
     나눠 담듯이 해야 한다. 
     그래서 코드에 이런 부분이 나온다.
     random_state=42)
    
     traint_test_split( )함수 자체가 무작위로 데이터를 섞은 
     다음 나누는 함수이고
     stratify=y 하면 클래스 비율을 일정하게 해주는 것이다.
     radom_state 매개변수는 실전에서는 쓸 일이 없다고 한다. 

    뒤에는 코드가 더 자세히 나온다. 이해만 하고 넘어가기로 했다.
      
4-6 로지스틱 회귀 뉴런으로 단일층 신경망을 만들기.
      이제 1개가 아니라 층의 개념이 나온다.
     이거야 말로 신경망 알고리즘이야기다.
   
       그리고 확률적경사하강법말고 배치경사하강법이 나온다.
     이 둘을 보완한 미니배치경사하강법이 주인공이다.
    
     배치 하강법은 인터넷에서 더 찾아본 결과 머신러닝의 비약적인 
    발전을 가져온 GPU의 병렬계산을 활용하는 방법이라고 한다.
      전체 데이터 중에 랜덤확률로 1개의 데이터를 뽑아서 학습을 
    진행하는 확률적경사하강법과 달리 한 번에 전체데이트 
    세트(배치)를 쓴다.
      미니 배치는 데이터 세트(배치)의 크기를 사용자가 정한다. 
    주로 2의n승으로 정한다는데 이걸 주로 쓴다고 한다.

4-7 사이킷런으로 로지스틱 회귀 수행하기.
      SGDclassifier 클래스에 로지스틱 휘귀를 적용한다.
      훈련할 때는 fit 메서드 sgd.fit(x_train, y_train)
      정확도 계산할 때 score 메서드 sgd.score(x_test, y_test)
      예측할 때 predict 메서드 sgd.predict(x_test[0:10])
      (사이킷런은 입력데이터로 2차원 배열만 받아들인다.)


4장 끝 - 모르고 넘어가자니 궁금하고 배우자니 내 분야가 아닌 것 같아서 
           굳이 이 책으로 독학까지 할 필요가 있나 생각이 들 때가 있다.
           그래서 딱 그 정도 마음가짐과 깊이로 그래도 끝까지 해봐야지 싶다.
           아주 모르는 것도 답답하니까!
           

[2021년 여름]
2학기 수업을 들으면서 1학기 파이썬에 이어서 신세계를 보기는 했는데 
아직도 "머신러닝, 딥러닝, 강화학습을 아예 아무것도 모르는 사람에게
설명해봐라"하면 막히는 감이 있다.
그래서 앞부분을 다시 보면서 메모했다.
1. 
(1) 머신러닝(기계학습)과 딥러닝은 약인공지능에
    포함되는 기술이다.
(2) 머신러닝의 알고리즘 중에 인공신경망 알고리즘을 
    사용하여 만든 것이 딥러닝이다.
(3) 머신러닝은 학습 방식에 따라 지도 학습, 비지도 학습,
    강화학습으로 분류한다.
(4) 강화학습은 주어진 환경으로 부터 보상과 현재상태라는
     피드백을 받는 에이전트를 훈련시키는 방식이다.
   (강화학습의 대표적인 알고리즘 : Q-러닝, SARSA, Deep Network)
   (강화학습의 예 : 딥마인드, 알파고)
(5) 머신러닝 알고리즘 중에는 로지스틱 회귀, 선형회귀 등이 있고
    인공신경망도 있는데 이 인공신경망을 다양하게 
     쌓은 것이 딥러닝이다.
(6) ★인상깊음
    딥러닝은 보통 인지와 관련된 문제 해결.
    처리하는 데이터가 이미지, 영상, 음성, 소리, 텍스트 , 
    번역 등 비정형 데이터
    머신러닝은 검진데이터, 매출 등 데이터 베이스,
    레코드 파일, 엑셀 등 정형 데이터

2. 규칙이란 가중치와 절편이다.
(1) 수업 때 실습한 가중치와 절편이 각각 1개인 간단한 식과 달리
    딥러닝은 10만, 100만의 가중치와 절편을 가진다.

3. 가중치와 절편을 합쳐 모델파라미터라고 부른다.

4. 손실함수로 모델의 규칙을 수정한다.
(1) 예측과 타깃이 맞지 않을 때 모델의 규칙인 가중치와
    절편을 수정해야 하는데
    이 수정 기준이 되는 함수가 손실함수(loss function)이다.
(2) 손실함수 : 모델이 예측한 값과 타깃값의 차이를 계산하는 함수
(3) 수업 때는 손실함수를 그냥 따라서 입력한 기억이 난다.

5. 최적화 알고리즘으로 손실 함수의 최솟값을 찾는다.
(1) 최적화 알고리즘이라고 하는데 이것은 수업에서도 잘 안배웠는지
    내가 기억을 못하는 것인지 책에서 알아봐야 겠다.


댓글

Creative Commons License