딥러닝기초_0527

allzeroyou·2022년 5월 27일
0

딥러닝기초

목록 보기
21/22

각 층에 대한 필터링을 통해 특징 추출

딥러닝과 머신러닝의 차이는 특징 추출 조차도 자동으로 함

인간의 개입 없이의 의미가 알아서 한다가 아닌, 특징을 기계가 찾아낸다는 것!

최소의 비용으로 최대의 성능을 보이자

노드수가 많아질 수록 (=파라미터 수가 많아질수록) 메모리 접근이 많아짐 => 시간이 오래 걸림
하지만 노드수가 적어질 수록 정확도가 떨어짐.

CNN 구현하기 코드를 활용해도 OK

  • 인터넷 활용(긁어다 쓰되 코드에 대한 이해가 있어야)

가중치의 초깃값은 Random하게 만들 것

진동하지 않고 특정 값으로 수렴

cnn 시각화

입력 이미지 => 색이 진한 부분 = 1로, 색이 연한 부분은 0으로

층이 깊어질수록 뉴런에 반응하는 대상이 단순한 모양에서 고급 정보로 변화 => 사물의 의미를 이해하도록 변화
(아기들이 막 태어났을 때는 시각을 통한 인지 능력이 좋지 않음)

일반 사물 인식을 수행한 8층의 CNN (AlexNet)

여러 층의 합성곱 풀링 계층과 마지막에 완전 연결 계층 구조 사용

대표적인 CNN

LeNet

손글씨 숫자를 인식하는 네트워크
신경'망'(=network)

CNN은 최신 기술이나 원론적인 기술은 24년 전인 LeNet.

합성곱 계층과 풀링 계층을 반복하고, 마지막에 완전 연결 계층을 거쳐 결과 출력하는 구조
필터를 많이 사용 => 특징을 많이 잡아내겠다.
CNN => 필터의 개수 중요

필터의 개수 역시 가중치 모델의 크기를 늘려 메모리 사용이 많아짐

현재 CNN의 차이

  • 활성화 함수로 시그모이드 함수 사용(현재 CNN은 ReLU)

  • 서브샘플링을 통한 중간 데이터 크기 줄이기(현재는 최대 풀링 cf. 축구팀에서 대표 선수를 뽑을 때 가장 잘하는 선수를 뽑음)

  • 가우시안 연결 : 특정 연결(가우시안 분포 따름), 완전 연결이 아님

  • full connection: 완전 연결 => cpu 사용량 많아짐
    노드수 하나만 늘어나면 노드에 따른 노드수가 많아짐 => 계산 수 많아짐. 복잡

AlexNet

2012년 발표되어 딥러닝 열풍을 일으키는 데 큰 역할 기여
입력은 인식하고자 하는 데이터에 따라 다름.
1000개의 데이터 출력(색깔만해도 1000개가 넘어서 인간의 뇌를 따라잡으려면,,)

입력데이터도 사람이 인식하는 것과 같아야 하고, 출력데이터 또한 인간의 사고방식과 같아야 한다.

LeNet과의 차이점, 파라미터들을 어떻게 잡아가냐?
LRN(Local Response Normalization): 국소적 정규화 실시하는 계층 사용
드롭아웃을 사용: 학습

=> 전부 오버피팅을 막는 방향임

오버피팅을 막아 범용성을 높인다.

많은 매개변수와 학습 데이터가 적을 때 오버피팅이 나옴.

오버피팅을 방지하는 여러가지 기법 => 드롭아웃, 배치정규화...

정규화를 사용해 골고루 초깃값 설정

어떤 기법으로 최적화 하였는지에 따라 다름.

팀만의 ~Net을 만들기

차이
합성곱 계층: 필터연산 => 특징 추출
풀링 레이어: 특징 맵을 간소화

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

0개의 댓글