딥러닝기초_0525

allzeroyou·2022년 5월 25일
0

딥러닝기초

목록 보기
20/22

노드수, 정확도를 개의치 않게 실습을 진행함
-> 이제는 최적화까지 고려해보자

물건을 선택하는 기준 => 가격도 낮으면서 성능이 좋은걸 선택
가성비를 따진다.

금요일 => CNN
자체 데이터셋을 만들어도 괜찮음
교수님께서 준비하신 테스트셋에는 엉망으로 한 글씨까지 포함할 예정임(다음주에 공개)

필요에 따라 데이터셋 추가
MNIST는 워낙 많이 알려져서 이미 써서 데이터 추가하는건 인터넷에 많이 있음
학습률, 파라미터 => optimizer

<목표>
1. 최소의 자원사용
2. 최고의 정확도

딱 200개 정도 테스트셋을 주고 정확도를 평가할 것

평가 구성

  • 팀별 평가
    인식 정확도로 절대평가 진행
    인식정확도는 상대평가임
    최소 자원(노드) 사용
    인식 정확도가 떨어질 거기 때문에, 2 group으로 나눠서 평가

어떤 신경망, 매개변수, 어떤 최적화 방향으로 진행했는지 보고서에 작성

  • 개인 평가(프리라이더 때문에)
    자기평가, 동료평가
    사회에 나가면 많이 쓰임

다음 수업인 금요일부터 20-30분 정도 시간을 줄 수 있을 듯

프로젝트 진행 일정 (13주파~15주차)
ㅇ 13주차: 프로젝트 시작 (팀별 토론)

  • 문제 정의 (사용할 인공신경망 기술 선정0
  • 자료 수집/분석 및 학습 데이터 확보
  • 업무 분담 및 진행 계획
    ㅇ 14주차 프로젝트 진행사항
  • 중간 진행상황 발표,
  • 인공신경망 모델 및 학습 최적화
    ㅇ 15주차: 프로젝트 최종 보고/발표회
  • 프로젝트 개요, 구현과정, 결과에 대한 발표
  • 최종 보고서 제출

위의 진행들이 보고서에 모두 포함되어야 함

6/15 or 6/22까지 시간을 줄 건데, 마감은 진행 상황/요청에 따라서 할 것

이제 열심히 프로젝트만 진행해줄 것

6/1은 선거날
이론적인 부분 설명이 남음(8강) => 녹강으로 대체(휴강x, 보강x)

30(팀플).30(중간).10(퀴즈).5.5(과제2번).20(출석)

팀플에 있어, 자신의 능력이 부족하다면 최소한 자기가 할 수 있는 일은 하면 됨
코드를 잘 활용하자(프로젝트)

모임 arrange, 무엇인가 잘 돌아갈 수 있게끔 하고.. 그런 자신의 역할을 잘 파악할 것

잘 화합하는지, 스스로 문제를 잘 해결하고자 하는지.. 성실한지..

평가factor들이 회사 평가와 비슷함

  1. 능력
  2. 자세(attitude) 를 본다.

이때 더 중시여기는 건, 자세임
능력의 차이는 트레이닝과 노력으로 배우면 된다.
자세는 변치 않음


합성곱계층 => 다차원 데이터를 다음 계층으로 넘길 수 있음

CNN의 구현

합성곱계층-ReLU-Pooling => Affine-ReLU => Affine-Softmax 순서로 구성

가장 먼저해야할 것은 => 초깃값 설정
클래스에 있어 생성자 만들기

SimpleConvNet 클래스 구현

초기화 때 받는 인수

  • Input_dim: 입력데이터(채널수, 높이, 너비)의 차원
    채널수: 0~255
    가로세로: 28x28
  • Conv_param: 합성곱 계층의 하이퍼파라미터, 딕셔너리 형태
    패딩: padding
    스트라이드: stride
    필터의 수: filter_num
    필터의 크기: filter_size

hidden_size: 완전연결구조에서 은닉층 노드의 수
output_size: 완전연결구조에서 출력층 노드의 수
weight_init_std: 초기화 때의 가장치 표준 편차

풀링계층의 노드수와 어파인계층의 히든 노드수로 가중치 결정
평균가중치의 표준편차: 0.01

학습해야될 가중치에 대한 초기화
W1 => 1번째 합성곱층에 있는 필터의 값(가중치, 랜덤값)

b1 => 합성곱층에 있는 편향(대부분, 0)

W2 => 완전연결계층의 가중치(pooling 계층의 출력값, 은닉층 값)

b2 => 편향(mx10)

  • CNN을 구성하는 계층 구조 구현

계층구조를 OrderedDict() 에 대입
W1, b1, stride, pad
필터의 매개변수, 편향의 매개변수, 스트라이드, 패딩 파라미터값 받아서 합성곱 신경망 구성

default로 2x2짜리 행렬을 하나의 값으로 => max pooling

  • 추론을 수행하는 predict 메서드와 손실 함수 구현
    해당되는 입력값에 대한 확률 값

OrderedDict()에 의해 굉장히 간단해진다.

오차역전파법으로 기울기 구하기

기울기를 구하기 위해 손실함수를 먼저 구해야!

중간결과 저장 배열 => grads={}
배열의 편미분 값 저장

CNN 시각화

정규화: 어떤 값을 특정 범위의 값으로 재정의

필터: 인공신경망이 보는(시각적) 사물의 특징

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글