본문 바로가기

신경망

ResNet (이론) 【3】최근 CNN 응용 모델 이해하고 사용하기 ResNet ResNet(Residual Network)은 마이크로소트프의 중국 연구진들이 개발하여 2015년 ILSVRC 대회에서 우승한 신경망이다. 놀라운 점은 대회에서 Top-5 오류율이 3.57%라는 것인데 보통 사람이 이미지를 인식할때 오류율이 약 5% 정도이므로 사람을 뛰어넘은 최초의 신경망으로 기록되었다. ResNet은 152개의 층 수를 가진 기존의 신경망과는 비교할 수 없을 만큼 깊은 신경망이다. 일반적으로 해결해야하는 문제가 복잡할 수록 신경망의 깊어 져야 하지만 기울기 손실(vanishing gradient) 혹은 기울기 폭발(exploding gradient)문제가 뒤따르고 깊어진 층 수 만큼 파라미터 수가 늘어나므로 에러가 커지는 상황.. 더보기
VGGNet (이론) 【3】최근 CNN 응용 모델 이해하고 사용하기 / VGGNet (이론) VGG는 기본적인 CNN의 구조에 깊이를 증가시킨 형태이다. 논문 "Very Deep Convolutional Networks For Large-Scale Image Recognition" 의 제목과 개요에 나와있 듯 VGG는 신경망의 깊이를 깊게 하는데 중점을 두었다. 이러한 이유로 (3,3)의 작은 필터 사이즈를 주어 깊이를 최대로 늘리고자 했다. 필터가 작으면 피처맵의 사이즈가 조금씩 줄어드므로 합성곱 층과 풀링 층을 많이 쌓을 수 있기 때문이다. VGG팀은 최대 19개 까지 층을 늘리는 실험을 통해 층이 16개 이상일 때 성능이 좋다는 것을 발견하고 층이 16개와 19개인 VGG16, VGG19 모델을 만들었다. 아래의 표를 .. 더보기
곱셈과 덧셈만 알면 정말 쉬운 '합성곱' 【2】CNN_합성곱 신경망 / Convolutional Neural Networks의 이해 곱셈과 덧셈만 알면 정말 쉬운 '합성곱' 합성곱 연산은 CNN의 핵심원리라고 할 만큼 중요하다. 그런데, 합성곱은 곱셈과 덧셈만 이용하면 되는 매우 단순한 작업이다. 그림과 함께 보면 합성곱 연산을 쉽게 이해 할 수 있을 것이다. 아래의 그림을 보자. 먼저 합성곱 연산을 위해서는 재료가 되는 입력 데이터와 필터가 필요하다. 사이즈는 (높이, 너비)로 표현하며 필터는 주로 (3,3) 또는 (5,5) 와 같은 정방행렬을 사용한다. 미리 언급했듯이 CNN의 학습 대상은 필터의 값(weight)이므로 적절한 초기 값을 설정할 필요가 있다. 이때 우리가 1장에서 다루었던 초기화 방법들이 CNN의 필터 값을 초기화 할때에도 .. 더보기
합성곱 신경망 (CNN) / 고양이의 눈에서 답을 얻다. 【2】CNN_합성곱 신경망 / Convolutional Neural Networks의 이해 합성곱 신경망 (CNN) / 고양이의 눈에서 답을 얻다. 합성곱 신경망(Convolutional Neural network,CNN)은 딥러닝의 역사에서 최초로 상당한 성과를 거둔 신경망이다. 오늘 날 합성곱 신경망은 일부 복잡한 이미지 처리 문제에서 사람을 능가하는 성과를 내고 있다. 이번 장에서는 CNN이 어떻게 등장했고 구성 요소와 동작 원리를 살펴본 후에 발전된 형태의 CNN 구조까지 알아보도록 하겠다. "고양이의 눈에서 답을 얻다." 1950년대 허블(Hubel)과 비셀(Wiesel)은 고양이의 시각 피질 실험에서 고양이 시야의 한 쪽에 자극을 주었더니 전체 뉴런이 아닌 특정 뉴런만이 활성화되는 것을 발견했.. 더보기
컴퓨터에게 눈이 달렸다! 【2】CNN_합성곱 신경망 / 컴퓨터 비전의 이해 컴퓨터에게 눈이 달렸다! 딥러닝 기반의 컴퓨터 비전 연구 분야에는 어떤 것들이 있을까? 다양한 문제들이 연구되고 있지만 이 책에서는 가장 기본이 되는 이미지 분류, 물체 인식을 포함해 조금 더 발전된 연구인 물체 검출과 이미지 캡셔닝까지 각 분야에 대한 개념을 알아보자. 1. 이미지 분류 (Image Classification) 이미지 분류는 물체 분류(Object classification)라고도 하며 이미지 전체 혹은 이미지 안의 물체(object)의 종류를 구분하는 작업이다. 이때 분류하려는 종류의 개수가 두개면 이진 분류, 여러 개면 다중 분류 작업이 되는데 예를 들면 전자는 강아지와 고양이로 이미지를 분류하는 문제가 있고 후자는 손으로 쓴 숫자(.. 더보기
컴퓨터에게 눈이 달렸다면 얼마나 좋을까? 【2】CNN_합성곱 신경망 / 컴퓨터 비전의 이해 컴퓨터에게 눈이 달렸다면 얼마나 좋을까? 컴퓨터 비전(Computer vision)은 인간의 시각(vision)을 컴퓨터가 가질 수 있도록 하는 인공지능의 한 분야이다. 사람이 눈을 통해 본 장면을 이해하고 정보를 얻는 것처럼 컴퓨터도 물체와 사람을 식별해서 관계를 파악하고 더 나아가 감정과 의도를 추측할 수 있도록 컴퓨터에게 ‘눈’을 달아 주는 것이다. 사람은 직관적으로 사진 속 사물과 그 관계를 파악하는 것이 가능하다. 그러나 이를 컴퓨터에게 가르치기란 결코 쉬운 일이 아니다. 그렇다면 컴퓨터에게 사람처럼 보는 법을 어떻게 알려 주려 했을까? 컴퓨터에게 눈을 달아주려는 아이디어에 맞게 초창기 컴퓨터 비전은 동물의 시각 정보 처리 방식을 모방하는 연구가.. 더보기
Batch - Normalization 【1】Deep Learning 시작하기_정규화라는 것도 있다 Batch - Normalization 신경망의 학습 효율을 높이기 위해서 활성화 함수, 초기화, 학습률의 변화 등 다양한 방법들이 등장해왔다. 이러한 간접적인 방법들 뿐만 아니라 학습 과정 자체를 안정화 하기위한 근본적인 연구들 또한 진행이 되어왔다. 신경망의 불안정성에는 내부 공변량 변화(Internal Covariance Shift)의 문제가 있는데 이는 신경망의 각 층 별 활성화 함수로 들어가는 입력데이터의 분포가 다른 현상을 말한다. 내부 공변량 변화 문제를 해결함으로써 신경망 학습 자체의 안전성을 높이고자 등장한 기법이 바로 배치 정규화다. "Batch - Normalization" 배치라는 용어는 전체 데이터가 한 번에 처리하기 힘.. 더보기
신경망 모형의 기본 구조 【1】Deep Learning 시작하기_신경망 모형(Neural Networks) 신경망 모형의 기본 구조 우리는 앞에서 신경망의 구조를 여러 번 언급했었다. 신경망은 다층퍼셉트론의 발전된 형태로 입력층-은닉층-출력층 구조인 다층퍼셉트론에서 은닉층을 두개 이상 쌓은 구조를 가진다. 은닉층의 개수가 많아지면 신경망이 깊어졌다(deep)이라고 하며 이를 심층 신경망(Deep Nerual Network, DNN)이라고 한다. 이번장에서는 딥러닝으로 넘어가기 전 마지막으로 신경망의 구조에 대해서 정리해보는 시간을 가질것이다. 처음 소개하는 내용이 아니므로 질문에 대답해보면서 따라와주기를 바란다! 아래의 그림은 가장 기본적인 신경망의 구조라고 할수 있는 은닉층이 2개인 구조의 신경망 그림이다. 몇가지 퀴즈를 통해.. 더보기
딥러닝의 뿌리를 찾아서, 퍼셉트론은 누구인가? 【1】 Deep Learning 시작하기_딥러닝이 알고 싶다! 딥러닝의 뿌리를 찾아서, 퍼셉트론은 누구인가? 인공지능 연구진들은 ‘사람을 대신해서 문제를 해결하는 기계’를 만들기 위해 사람의 뇌 구조를 분석하고 이를 컴퓨터세계로 가져옴으로써 인공신경망을 만들 수 있을 것이라고 생각했다. 1957년 블랜트(Frank Rosenblatt)가 제안한 인공 뉴런인 퍼셉트론은 신경망(딥러닝)으로 나아가는데 중요한 아이디어가 되었다. 이번장에서는 딥러닝의 핵심이 되는 인공신경망의 구성원인 인공뉴런 즉, 퍼셉트론의 동작원리를 간단히 소개하겠다. 먼저 퍼셉트론의 동작을 이해하기 위해 생물학적 신경망을 보도록 하자. 사람의 뇌는 뉴런이라고 불리는 신경세포로 구성되어 있다. 뉴런은 다수의 입력이 합산되어 하나의 통로로 출.. 더보기
[머신러닝] [single / multi / shallow / deep] neural network 명칭 정리 머신러닝에서 여러 neural network를 공부하다 보면, neural network에 대해서 이름을 single layer neural network, multi layer neural network, 또는 shallow neural network, deep neural network라고 불리어지는 것을 확인할 수 있는데요, 이러한 명칭에 대해서 처음에 정리가 안되어 있으면 헷갈리실 수 있습니다. 따라서 각 명칭은 어떠한 neural network를 가리키는지 빠르게 알아보도록 하겠습니다. 1. single layer neural network vs multi layer neural network 먼저, single layer neural network는 말 그대로 neural network에서 층.. 더보기