Computer Science27 [비전공자용] 딥러닝이 몇 년 전부터 뜨고 있는 이유 (feat. AlexNet) VGG, GoogLeNet, ResNet은 무엇? 이번 포스트에서는 딥러닝이 어떻게 주목받게 되었고 왜 많은 사람들이 딥러닝에 열중하는 지 그 이유에 대해서 알아보려고 합니다. 추가로 핫한 딥러닝 기법에 대해서도 맛보기로 소개하겠습니다. 딥러닝이 처음으로 큰 주목을 받게 된 계기는 2012년에 열린 ILSVRC 대회였습니다. ILSVRC - ImageNet Large Scale Recognition Challenge 이 대회는 이미지 인식 기술을 겨루는 대회입니다. (누구_기술이_더_이미지_인식을_잘_하나_대회) 2012년에 이 대회에서 AlexNet이 압도적으로 우승하게 됩니다. AlexNet은 딥러닝에 기초한 기법으로 이전까지 이미지 인식을 접근했던 방식과는 차별점이 있는 아주 획기적인 기법으로 이슈가 됩니다. 2012년을 기점으로 이 대회에서는 항.. 2020. 7. 30. [비전공자용] [Python] 직접 딥러닝으로 손글씨 숫자 인식하기 (정확도 99% 이상) 이번 포스트에서는 드디어 심층 신경망이라고 불리는 딥러닝으로 손글씨 숫자를 인식하는 예제를 구현해보려고 합니다. 이전 포스트에서 아주 간단한 CNN 합성곱 신경망을 구현했었는데요. 이번에는 더 깊게 신경망을 구성해보려고 합니다. 사전 지식이 필요하니 이전 포스트를 먼저 읽고 와주세요. 2020/07/28 - [Computer Science/Deep Learning] - [비전공자용] [Python] CNN 합성곱 신경망 구현하기 딥러닝으로 손글씨 숫자 인식하기 먼저 계층을 구성할 겁니다. 신경망의 몇 가지 특징을 먼저 정하고 갑시다. 3 X 3의 작은 필터를 사용한 합성곱 계층 활성화 함수: ReLU 완전연결 계층 뒤에 드롭아웃 계층 사용 Adam을 사용해 최적화 가중치 초깃값: 'He 초깃값' 위와 같.. 2020. 7. 30. [비전공자용] 대표적인 CNN 네트워크 - LeNet과 AlexNet 가장 유명하고 중요한 CNN 네트워크 두 가지를 뽑으라고 하면, 대부분은 CNN의 원조인 LeNet과 딥러닝이 주목받도록 이끈 AlexNet를 말할 겁니다. 이번 포스트에서는 LeNet과 AlexNet에 대해 알아보겠습니다! 1. LeNet 손글씨 숫자를 인식하는 네트워크 1998년에 제안된 첫 CNN 네트워크 합성곱 계층과 풀링 계층을 반복하고, 마지막에 완전연결 계층을 거쳐서 결과를 출력 최신 CNN과의 차이: 1) 활성화 함수로 시그모이드 함수 사용 (현재는 ReLU 주로 사용) 2) 원소를 줄이기만 하는 서브샘플링 사용해서 중간 데이터 크기 줄임 (현재는 Max 풀링 많이 사용) 2. AlexNet 딥러닝 열풍의 주역 2012년에 발표된 CNN 네트워크 LeNet과 구성의 큰 차이는 없음 합성곱 .. 2020. 7. 29. [비전공자용] CNN (합성곱 신경망)에서 필터를 적용한다는 것의 의미 이해하기 이번 포스트에서는 합성곱 신경망에서 필터가 어떻게 작용하는지 이해하기 쉽게 설명해보려 한다. 신경망 학습을 통해서 loss손실을 줄이는 방향으로 이 가중치가 변화하게 된다. 먼저 그 변화를 자세히 살펴보자. 1. 처음에 가중치를 설정할 때는 랜덤으로(무작위로) 값을 정하기 때문에 의미없는 값들로 이루어져 있다. 아무 규칙이 없다는 말이다. 2. 학습을 거치면서 필터는 규칙성 있는 형태로 변화한다. 3. 학습된 필터 몇 개를 선택해서 입력받은 이미지에 합성곱 처리(Test)를 해보면 4. 각각의 필터 특징에 맞게 어떤 특징이 부각되어 이미지를 출력한다. 이해를 돕기 위해 예를 들어보자. CNN을 구성하는 한 합성곱 계층의 가중치가 (30, 1, 5, 5)의 형상을 가지고 있다고 하자. ☞ 통상적으로 필터 .. 2020. 7. 29. [비전공자용] [Python] CNN 합성곱 신경망 구현하기 자자 이제 지금까지 공부했던 합성곱 계층과 풀링 계층을 이용해서 손글씨 숫자를 인식하는 CNN 합성곱 신경망을 본격적으로 구현해보도록 하겠습니다!!!!!! 합성곱 계층과 풀링 계층에 대해 개념적으로 공부하고 싶으신 분들은 아래 포스트를 참고하세요. 2020/07/10 - [Computer Science/Deep Learning] - [비전공자용]합성곱 신경망 (CNN) - 합성곱 계층 & 풀링 계층 아래 구조의 계층으로 구성되어 있는 CNN을 SimpleConvNet이라는 클래스로 구성해봅시다. 입력데이터 -----> Convolution -> ReLU -> Pooling -----> Affine -> ReLU -----> Affine -> Softmax ------> 결과 SimpleConvNet 신경.. 2020. 7. 28. [비전공자용] [Python] CNN(합성곱 신경망) - 풀링 계층 구현 이번 포스트에서는 지난 포스트(CNN-합성곱 계층 구현)에 이어서 2020/07/28 - [Computer Science/Deep Learning] - [비전공자용] [Python] CNN(합성곱 신경망) - 합성곱 계층 구현 CNN에서의 풀링 계층을 Python으로 구현해보려 합니다. 여기서는 코드를 구성하는 것만 다루기 때문에 개념적으로 공부하고 싶으신 분들은 아래 포스트를 참고해주세요. 2020/07/10 - [Computer Science/Deep Learning] - [비전공자용]합성곱 신경망 (CNN) - 합성곱 계층 & 풀링 계층 2. 풀링 계층 구현 합성곱 계층과 마찬가지로 풀링 계층에서도 im2col 함수를 사용해서 입력 데이터를 전개합니다. 하나 차이점이 있다면, 풀링 계층에서는 채널 .. 2020. 7. 28. 이전 1 2 3 4 5 다음 반응형