Skip to content
Home » 인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 479 개의 새로운 답변이 업데이트되었습니다.

인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 479 개의 새로운 답변이 업데이트되었습니다.

당신은 주제를 찾고 있습니까 “인공 지능 cnn – 딥러닝 CNN, 개념만 이해하기“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 인공지능 개발자 모임 이(가) 작성한 기사에는 조회수 23,054회 및 좋아요 460개 개의 좋아요가 있습니다.

결과적으로 이미지 공간 정보 유실로 인한 정보 부족으로 인공 신경망이 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있다. 이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델이 바로 CNN(Convolutional Neural Network)이다.

Table of Contents

인공 지능 cnn 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 딥러닝 CNN, 개념만 이해하기 – 인공 지능 cnn 주제에 대한 세부정보를 참조하세요

CNN(Convolutional Neural Network)은
이미지를 처리하는 딥러닝 모델입니다.
컨볼루션 신경망이 탄생하게 된 배경과
구체적인 동작방식에 대해 알아봤습니다.
(클로바더빙으로 제작한 AI 보이스입니다.)

[ 인공지능 개발자 모임 ]– https://www.facebook.com/groups/AIDevKr/
– http://aidev.co.kr/

인공 지능 cnn 주제에 대한 자세한 내용은 여기를 참조하세요.

[AI] CNN(Convolutional Neural Network) 개념정리 – velog

CNN(Convolutional Neural Network)에 대해 알아보려고 한다. … CNN은 시각적 이미지를 분석하는 데 사용되는 깊고 피드-포워드적인 인공신경망의 한 종류 …

+ 여기에 더 보기

Source: velog.io

Date Published: 8/11/2022

View: 2801

[인공지능] ANN, DNN, CNN, RNN 개념과 차이

머신러닝(Machine Learning) 혹은 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻합니다. 딥 …

+ 여기에 더 보기

Source: ebbnflow.tistory.com

Date Published: 11/14/2022

View: 6915

인공지능 : CNN(Convolutional Neural Networks) 개념, 예제, 분석

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지 …

+ 여기에 더 보기

Source: jjeongil.tistory.com

Date Published: 2/20/2021

View: 2798

Ⅴ. 감각과 인지 – 5. CNN이란 무엇일까요? – AI4School

인공지능 개발자들은 이런 문제점을 해결하기 위해 CNN(Convolutional Neural Network)이라는 인공신경망을 개발하였습니다. 컴퓨터에게 이미지에서 특징적인 부분만을 …

+ 여기에 더 보기

Source: ai4school.org

Date Published: 3/20/2021

View: 6589

인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 최근 답변 219개

인공 지능 cnn 주제에 대한 자세한 내용은 여기를 참조하세요. 인공지능 : CNN(Convolutional Neural Networks) 개념, 예제, 분석. CNN의 …

+ 여기에 자세히 보기

Source: ppa.dianhac.com.vn

Date Published: 2/3/2021

View: 1716

CNN을 이용한 딥러닝 기반 하수관 손상 탐지 분류 시스템

본 연구는 인공지능 분야의 딥러닝 기술을 기반으로 한 하수관 손상의 자동 탐지 분류 시스템을 제안한다. 성능의. 최적화를 위하여 DB 획득 시 발생된 조도 및 그림자 …

+ 여기에 더 보기

Source: www.koreascience.or.kr

Date Published: 6/15/2022

View: 6832

CNN의 발전과 활용, 왜 딥러닝인가?

Facebook AI Research (FAIR)의 Detectron 시스템은 이러한 모든 SOTAstate of the art급 객체 탐지 알고리즘을 적용하였으며, 오픈 소스이다. CNN의 대표적인 활용 …

+ 더 읽기

Source: atcold.github.io

Date Published: 7/17/2022

View: 2346

인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 192 개의 베스트 …

인공지능 개발자들은 이런 문제점을 해결하기 위해 CNN(Convolutional Neural Network)이라는 인공신경망을 개발하였습니다. 컴퓨터에게 이미지에서 특징 …

+ 여기에 자세히 보기

Source: you.giaohangso1.vn

Date Published: 9/7/2022

View: 7803

인공지능 기법(CNN)을 이용한 음성과 음악구분

인공지능 기법(CNN)을 이용한 음성과 음악구분. 한상일. 한국기술교육대학교 산업경영학과. Speech-Music Discrimination Using Deep Learning. Sang-Il Han.

+ 여기를 클릭

Source: www.kais99.org

Date Published: 1/27/2022

View: 7143

주제와 관련된 이미지 인공 지능 cnn

주제와 관련된 더 많은 사진을 참조하십시오 딥러닝 CNN, 개념만 이해하기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

딥러닝 CNN, 개념만 이해하기
딥러닝 CNN, 개념만 이해하기

주제에 대한 기사 평가 인공 지능 cnn

  • Author: 인공지능 개발자 모임
  • Views: 조회수 23,054회
  • Likes: 좋아요 460개
  • Date Published: 2020. 10. 16.
  • Video Url link: https://www.youtube.com/watch?v=9Cu2UfNO-gw

[딥러닝 모델] CNN (Convolutional Neural Network) 설명

저번 포스팅에서는 딥러닝의 모델별 특징에 대해 알아보았습니다.

2021.07.10 – [SW programming/Computer Vision] – AI, 머신러닝, 딥러닝 이란? 그리고 딥러닝 모델 종류

그리고 이번 포스팅에서는 그 중 Computer Vision에서 가장 많이 쓰이는 딥러닝 모델인 ‘CNN’에 대해 자세히 알아보도록 하겠습니다.

CNN 특징

https://gfycat.com/ko/smoggylittleflickertailsquirrel-machine-learning-neural-networks-mnist

Convolutional Neural Network, 합성곱 신경망

인간의 시신경 구조를 모방한 기술

특징맵을 생성하는 필터까지도 학습이 가능해 비전(vision) 분야에서 성능이 우수함

이미지를 인식하기 위해 패턴을 찾는데 특히 유용함

데이터를 직접 학습하고 패턴을 사용해 이미지를 분류함

자율주행자동차, 얼굴인식과 같은 객체인식이나 computer vision이 필요한 분야에 많이 사용되고 있음

이미지의 공간 정보를 유지한 채 학습을 하게 하는 모델 (1D로 변환하는 것이 아닌 2D 그대로 작업함)

사람이 여러 데이터를 보고 기억한 후에 무엇인 지 맞추는 것과 유사함

CNN 구조

CNN 모델의 구조

Fully Connected Layer 만으로 구성된 인공 신경망의 입력 데이터는 1차원(배열) 형태로 한정된다. 한 장의 컬러 사진은 3차원 데이터이다. 배치 모드에 사용되는 여러 장의 사진은 4차원 데이터이다(그림 속에서 직육면체로 표현). 사진 데이터로 전연결(FC, Fully Connected) 신경망을 학습시켜야 할 경우에, 3차원 사진 데이터를 1차원으로 평면화시켜야 한다. 사진 데이터를 평면화 시키는 과정에서 공간 정보가 손실될 수밖에 없다. 결과적으로 이미지 공간 정보 유실로 인한 정보 부족으로 인공 신경망이 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있다. 이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델이 바로 CNN(Convolutional Neural Network)이다.

CNN 모델의 구조 & Layer 종류

CNN은 위 이미지와 같이 이미지의 특징을 추출하는 부분과 클래스를 분류하는 부분으로 나눌 수 있다. 특징 추출(Feature extraction/learning) 영역은 Convolution Layer와 Pooling Layer를 여러 겹 쌓는 형태로 구성된다. Convolution Layer는 입력 데이터에 필터를 적용 후 활성화 함수를 반영하는 필수 요소이다. Convolution Layer 다음에 위치하는 Pooling Layer는 선택적인 레이어이다.

CNN 마지막 부분에는 이미지 분류(Classification)를 위한 Fully Connected Layer가 추가된다. 이미지의 특징을 추출하는 부분과 이미지를 분류하는 부분 사이에 이미지 형태의 데이터를 배열 형태로 만드는 Flatten 레이어가 위치 한다.

그럼 위에서 볼드 처리한 각 Layer가 어떻게 동작하는 지 알아보도록 하자.

Convolution(합성곱) Layer

Color 이미지는 3D

이미지 데이터는 그림 4와 같이 높이X너비X채널의 3차원 텐서 (tensor)로 표현될 수 있다. 만약, 이미지의 색상이 RGB 코드로 표현되었다면, 채널의 크기는 3이 되며 각각의 채널에는 R, G, B 값이 저장된다.

컬러 이미지 데이터에 대한 텐서 표현

Filter 적용

하나의 합성곱 계층에는 입력되는 이미지의 채널 개수만큼 필터가 존재하며, 각 채널에 할당된 필터를 적용함으로써 합성곱 계층의 출력 이미지가 생성된다.

예를 들어, 높이X너비X채널이 4X4X1인 텐서 형태의 입력 이미지에 대해 3X3 크기의 필터를 적용하는 합성곱 계층에서는 아래 그림과 같이 이미지와 필터에 대한 합성곱 연산을 통해 2X2X1 텐서 형태의 이미지가 생성된다.

하나의 채널에 대한 Convolution(합성곱) 계층의 동작

위 그림의 예시에서는 bias를 더하는 것이 생략되었는데, 실제 구현에서는 합성곱을 통해 생성된 행렬 형태의 이미지에 bias라는 스칼라값을 동일하게 더하도록 구현되기도 한다.

Stride

이미지에 대해 필터를 적용할 때는 필터의 이동량을 의미하는 스트라이드(stride)를 설정해야한다. 아래 그림은 동일한 입력 이미지와 필터에 대해 스트라이드 값에 따른 출력 이미지의 변화를 보여준다.

(왼쪽) stride = 1인 경우, (오른쪽) stride = 2인 경우

CNN을 구현할 때 합성곱 계층의 스트라이드는 주로 1로 설정된다.

Padding

위에서 봤던 두 그림에서 볼 수 있듯이 입력 이미지에 대해 합성곱을 수행하면, 출력 이미지의 크기는 입력 이미지의 크기보다 작아지게 된다. 4×4 였던 입력 이미지가 합성곱을 수행하여 2×2 의 출력 이미지의 크기를 갖는다. 그러므로 합성곱 계층을 거치면서 이미지의 크기는 점점 작아지게 되고, 이미지의 가장자리에 위치한 픽셀들의 정보는 점점 사라지게 된다. 이러한 문제점을 해결하기 위해 이용되는 것이 패딩 (padding)이다.

패딩은 아래 그림과 같이 입력 이미지의 가장자리에 특정 값으로 설정된 픽셀들을 추가함으로써 입력 이미지와 출력 이미지의 크기를 같거나 비슷하게 만드는 역할을 수행한다. 이미지의 가장자리에 0의 값을 갖는 픽셀을 추가하는 것을 zero-padding이라고 하며, CNN에서는 주로 이러한 zero-padding이 이용된다.

아래 그림의 오른쪽처럼 1폭짜리 zero-padding을 적용하였더니 출력 이미지 크기가 입력 이미지 크기와 같이 4×4 로 유지된다.

(왼쪽) Padding을 안한 경우, (오른쪽) Zero-padding인 경우

Zero-padding의 경우, 이미지 손실이 없음을 확인할 수 있다.

Pooling Layer

이미지의 크기를 계속 유지한 채 Fully Connected layer로 가게 된다면 연산량이 기하급수적으로 늘 것이다. 적당히 크기도 줄이고, 특정 feature를 강조할 수 있어야 하는데 그 역할을 Pooling layer에서 하게 된다.

처리 방법은 총 세 가지가 있다.

Max Pooling

Average Pooling

Min Pooling

CNN에서는 주로 Max Pooling 사용한다. 이는 뉴런이 가장 큰 신호에 반응하는 것과 유사하다고 한다. 이렇게 하면 노이즈가 감소하고 속도가 빨라지며 영상의 분별력이 좋아진다.

아래 그림은 stride가 2로 설정된 max-pooling 기반 풀링 계층의 동작을 보여준다.

Max-pooling이 적용된 Pooling layer

위의 그림에서는 2X2 크기의 선택 영역마다 max-pooling을 적용했으며, 일반적으로 Pooling layer의 stride는 선택 영역의 높이 또는 너비의 크기와 동일하게 설정된다.

이미지 데이터의 특징은 인접 픽셀들 간의 유사도가 매우 높다는 것이다. 따라서 이미지는 픽셀 수준이 아니라, 특정 속성을 갖는 선택 영역 수준으로 표현될 수 있으며, Pooling layer은 이미지 데이터의 이러한 특징을 바탕으로 설계되었다. Max-pooling의 경우에는 선택 영역에서 가장 큰 값을 해당 영역의 대표값으로 설정하는 것과 같다. CNN에서는 이러한 Pooling layer을 이용함으로써 아래와 같은 다양한 이점들을 얻을 수 있다.

▷ 선택 영역 내부에서는 픽셀들이 이동 및 회전 등에 의해 위치가 변경되더라도 출력값을 동일하다. 따라서 Pooling layer을 이용할 경우, 이미지를 구성하는 요소들의 이동 및 회전 등에 의해 CNN의 출력값이 영향을 받는 문제를 완화할 수 있다.

▷ CNN이 처리해야하는 이미지의 크기가 크게 줄어들기 때문에 인공신경망의 model parameter 또한 크게 감소한다. 따라서 Pooling layer을 이용함으로써 CNN의 학습 시간을 크게 절약할 수 있으며, 오버피팅 (overfitting) 문제 또한 어느정도 완화할 수 있다.

Fully Connected Layer

지금까지 설명한 내용이 ‘특징 추출’을 위한 작업이었고 그 다음부터는 분류 작업이다. 이미지 특징을 추출하여 이것이 무엇을 의미하는 데이터 인지를 분류 작업하는 것이다.

여기에도 2가지 종류의 Layer가 있다.

Flatten Layer : 데이터 타입을 Fully Connected 네트워크 형태로 변경. 입력 데이터의 shape 변경만 수행

: 데이터 타입을 Fully Connected 네트워크 형태로 변경. 입력 데이터의 shape 변경만 수행 Softmax Layer : Classification 수행

여기에 해당하는 내용은 Computer Vision에서 크게 중요한 내용이 아니므로 이정도로 정리하겠다.

결론

설정 가능한 파라미터는 무엇이 있을까?

CNN의 파라미터로는 아래와 같다.

Convolution Filter의 개수

Filter의 사이즈

Padding 여부

Stride

Pooling layer 종류

하나씩 살펴보면,

Convolution Filter의 개수

각 Layer에서의 연산시간/량을 비교적 일정하게 유지하며 시스템의 균형을 맞추는 것이 좋다.

보통 Pooling Layer를 거치면 1/4로 출력이 줄어들기 때문에 Convolution Layer의 결과인 Feature Map의 개수를 4배정도 증가시키면 된다.

Filter 사이즈

작은 필터를 여러 개 중첩하면 원하는 특징을 더 돋보이게 하면서 연산량을 줄일 수 있다.

요즘 대부분의 CNN은 3×3 size를 중첩해서 사용한다고 한다.

Padding 여부

Padding은 Convolution을 수행하기 전, 입력 데이터 주변을 특정 픽셀 값으로 채워 늘리는 것이다.

Padding을 사용하게 되면 입력 이미지의 크기를 줄이지 않을 수 있다.

Stride

Stride는 Filter의 이동 간격을 조절하는 파라미터 이다.

이 값이 커지게 되면 결과 데이터의 사이즈가 작아지게 된다.

Pooling layer 종류

적당히 이미지 크기를 줄이면서 특정 feature를 강조하는 역할을 한다.

주로 Max 값을 뽑아내는 종류를 사용한다.

CNN은 Convolution과 Pooling을 반복적으로 사용하면서 불변하는 특징을 찾고, 그 특징을 입력데이터로 Fully-connected 신경망에 보내 Classification을 수행하는 것이다.

http://taewan.kim/post/cnn/

https://gruuuuu.github.io/machine-learning/cnn-doc/

https://untitledtblog.tistory.com/150

http://www.kibme.org/resources/journal/20180802153528786.pdf

위 글이 도움이 되셨나면, 아래 하트를 눌러주세요↓

감사합니다 \( ˆoˆ )/​

반응형

[인공지능] ANN, DNN, CNN, RNN 개념과 차이

● 인공지능, 머신러닝, 딥러닝

인공지능(Artificial Intelligence)는 인간의 지능이 갖고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 말합니다.

머신러닝(Machine Learning) 혹은 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻합니다.

딥러닝(Deep Learning)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(다량의 복잡한 자료들에서 핵심적인 내용만 추려내는 작업)을 시도하는 기계학습 알고리즘의 집합으로 뜻합니다.

인공지능 & 머신러닝 & 딥러닝

따라서 위의 그림처럼 가장 포괄적인 인공지능 분야 안에 머신러닝이 속하고 있고, 머신러닝 분야 속에는 딥러닝 분야가 속해있다고 볼 수 있겠습니다.

● ANN, DNN, CNN, RNN

ANN(Artificial Neural Network)

위에서 설명한 머신러닝의 한 분야인 딥러닝은 인공신경망(Artificial Neural Network)를 기초로 하고 있는데요. 인공신경망이라고 불리는 ANN은 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘 입니다.

인간의 뇌에서 뉴런들이 어떤 신호, 자극 등을 받고, 그 자극이 어떠한 임계값(threshold)을 넘어서면 결과 신호를 전달하는 과정에서 착안한 것입니다. 여기서 들어온 자극, 신호는 인공신경망에서 Input Data이며 임계값은 가중치(weight), 자극에 의해 어떤 행동을 하는 것은 Output데이터에 비교하면 됩니다.

ANN 인공신경망

인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다. (출처 : 위키백과)

쉽게 설명하자면,

신경망은 다수의 입력 데이터를 받는 입력층(Input), 데이터의 출력을 담당하는 출력층(Output), 입력층과 출력층 사이에 존재하는 레이어들(은닉층)이 존재합니다. 여기서 히든 레이어들의 갯수와 노드의 개수를 구성하는 것을 모델을 구성한다고 하는데, 이 모델을 잘 구성하여 원하는 Output값을 잘 예측하는 것이 우리가 해야할 일인 것입니다. 은닉층에서는 활성화함수를 사용하여 최적의 Weight와 Bias를 찾아내는 역할을 합니다.

ANN의 문제점

학습과정에서 파라미터의 최적값을 찾기 어렵다.

출력값을 결정하는 활성화함수의 사용은 기울기 값에 의해 weight가 결정되었는데 이런 gradient값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류를 낳기도 하고 부분적인 에러를 최저 에러로 인식하여 더이상 학습을 하지 않는 경우도 있습니다.

Overfitting에 따른 문제

학습시간이 너무 느리다.

은닉층이 많으면 학습하는데에 정확도가 올라가지만 그만큼 연산량이 기하 급수적으로 늘어나게 됩니다.

하지만 이는 점점 해결되고 있습니다. 느린 학습시간은 그래픽카드의 발전으로 많은 연산량도 감당할 수 있을 정도로 하드웨어의 성능이 좋아졌고, 오버피팅문제는 사전훈련을 통해 방지할 수 있게 되었습니다.

DNN(Deep Neural Network)

NN vs DNN

ANN기법의 여러문제가 해결되면서 모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법이 등장하였고 이를 DNN(Deep Neural Network)라고 합니다. DNN은 은닉층을 2개이상 지닌 학습 방법을 뜻합니다. 컴퓨터가 스스로 분류레이블을 만들어 내고 공간을 왜곡하고 데이터를 구분짓는 과정을 반복하여 최적의 구번선을 도출해냅니다. 많은 데이터와 반복학습, 사전학습과 오류역전파 기법을 통해 현재 널리 사용되고 있습니다.

그리고, DNN을 응용한 알고리즘이 바로 CNN, RNN인 것이고 이 외에도 LSTM, GRU 등이 있습니다.

CNN(합성곱신경망 : Convolution Neural Network)

기존의 방식은 데이터에서 지식을 추출해 학습이 이루어졌지만, CNN은 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 구조입니다. 이 CNN 알고리즘은 Convolution과정과 Pooling과정을 통해 진행됩니다. Convolution Layer와 Pooling Layer를 복합적으로 구성하여 알고리즘을 만듭니다.

CNN

Convolution

CNN – convolution

데이터의 특징을 추출하는 과정으로 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악하고 파악한 특징을 한장으로 도출시키는 과정이다. 여기서 도출된 장을 Convolution Layer라고 한다. 이 과정은 하나의 압축 과정이며 파라미터의갯수를 효과적으로 줄여주는 역할을 합니다.

Pooling

이는 Convolution 과정을 거친 레이어의 사이즈를 줄여주는 과정입니다. 단순히 데이터의 사이즈를 줄여주고, 노이즈를 상쇄시키고 미세한 부분에서 일관적인 특징을 제공합니다.

CNN은 보통 정보추출, 문장분류, 얼굴인식 등의 분야에서 널리 사용되고 있습니다.

RNN(순환신경망 : Recurrent Neural Network)

RNN

RNN 알고리즘은 반복적이고 순차적인 데이터(Sequential data)학습에 특화된 인공신경망의 한 종류로써 내부의 순환구조가 들어있다는 특징을 가지고 있습니다. 순환구조를 이용하여 과거의 학습을 Weight를 통해 현재 학습에 반영합니다. 기존의 지속적이고 반복적이며 순차적인 데이터학습의 한계를 해결하연 알고리즘 입니다. 현재의 학습과 과거의 학습의 연결을 가능하게 하고 시간에 종속된다는 특징도 가지고 있습니다. 음성 웨이브폼을 파악하거나, 텍스트의 앞 뒤 성분을 파악할 때 주로 사용됩니다.

인공지능 : CNN(Convolutional Neural Networks) 개념, 예제, 분석

반응형

이 글에서는 CNN(Convolutional Neural Networks)을 탐구하고, 높은 수준에서 그것들이 어떻게 두뇌의 구조에서 영감을 얻는지 살펴보기로 하겠습니다.

The Brain

우리는 끊임없이 주변의 세계를 분석합니다. 의식적인 노력 없이, 우리는 우리가 보는 모든 것에 대해 예측을 하고, 그것에 따라 행동합니다. 우리가 어떤 것을 볼 때, 과거에 배운 것을 바탕으로 모든 대상에 라벨을 붙입니다.

여러분은 아마 “저 아이는 의자 위에 서 있는 행복한 소년이다.”라고 생각할 수 있습니다. 아니면 비명을 지른다고 생각할 수 있습니다. 또는 케이크를 망치려는 것으로 볼 수 있습니다.

이것이 우리가 하루 종일 아낌없이 하는 것입니다. 우리는 패턴을 보고, 라벨을 붙이고, 예측하고, 인지합니다. 하지만 어떻게 그렇게 할 수 있을까요? 우리가 보는 모든 것을 어떻게 해석할 수 있을까요?

자연은 이것을 위해 시스템을 만드는 데 5억년이 넘게 걸렸습니다. 즉, 눈과 뇌의 상호작용이 우리 주변의 세상을 바라 볼 수 있는 근본적인 이유입니다.

보는 것에 대한 실제적인 해석은 뇌에서, 1차 시각적 피질에서 일어납니다.

물체를 볼 때, 눈에 있는 빛 수용기는 입력이 처리되고 있는 1차 시각피질로 신호를 보냅니다. 1차 시각피질은 눈이 보는 것을 이해합니다.

이 모든 것이 우리에게 매우 자연스러운 것처럼 보입니다. 우리는 삶에서 보는 모든 대상과 사람들을 인식할 수 있다는 것이 얼마나 특별한지에 대해 거의 생각하지도 않습니다. 뇌의 뉴런과 연결의 매우 복잡한 계층 구조는 물체를 기억하고 라벨을 붙이는 이 과정에 중요한 역할을 합니다.

예를 들어, 우산이 무엇인지 어떻게 배웠는지 생각해 보겠습니다. 부모님이나 가족은 우리에게 직접적인 환경에 있는 물건들의 이름을 말해주었습니다. 우리는 주어진 예를 통해 배웠습니다. 천천히 그러나 확실히 우리는 우리의 환경에서 특정한 것들을 점점 더 자주 인식하기 시작했습니다. 다음에 우리가 그것들을 보았을 때, 우리는 즉시 이 물체의 이름이 무엇인지 알 수 있습니다. 그것들은 바로 우리의 모델이 되는 것입니다.

Convolutional Neural Networks

아이가 사물을 인식하는 법을 배우는 방법과 유사하게, 우리는 입력 내용을 일반화하고 이전에 보지 못했던 이미지에 대한 예측을 하기 전에 수백만 장의 사진을 알고리즘에 보여줄 필요가 있습니다.

컴퓨터는 우리와는 다른 방식으로 ‘보고’ 있습니다. 그들의 세계는 숫자로만 이루어져 있습니다. 모든 이미지는 픽셀로 알려진 2차원 숫자의 배열로 표현됩니다.

하지만 컴퓨터가 다른 방식으로 이미지를 인식한다는 사실로, 우리가 컴퓨터에게 패턴을 인식하도록 훈련시킬 수 없다는 것을 의미하지는 않습니다. 우리는 단지 어떤 이미지가 다른 방식으로 존재하는지 생각하기만 하면 됩니다.

영상에서 물체를 인식하는 방법을 알고리즘에 가르치기 위해, 우리는 특정 유형의 인공 신경망을 사용합니다. ( CNN(Convolutional Neural Network) )

CNN은 뇌에서 영감을 받았습니다다. 포유류가 세상을 시각적으로 인식하는 방법에 대한 새로운 모델을 제안된 것입니다. 고양이와 원숭이 시각 피질에는 직접적인 환경에서 독점적으로 반응하는 뉴런이 포함되어 있다는 것을 알아내었습니다.

논문에서, 각각 다른 방식으로 작용하는 뇌의 시각 뉴런 세포의 두 가지 기본적인 형태, 즉 단순한 세포와 복잡한 세포에 대해 설명했습니다.

복잡한 세포는 망막의 절대 위치가 바뀌어도 일정한 자극에 계속 반응합니다.

시각에서, 단일 감각 신경 세포의 수용 영역은 망막의 특정 영역으로, 그 신경 세포의 발화에 무언가가 영향을 미칩니다. 모든 감각 신경 세포는 유사한 수용장을 가지고 있습니다.

게다가, 계층의 개념은 뇌에서 중요한 역할을 합니다. 정보는 패턴의 순서에 따라 순차적으로 저장됩니다. 뇌의 가장 바깥 층인 신피질은 정보를 계층적으로 저장합니다. 그것은 피질 기둥이나 신피질에 있는 뉴런의 균일하게 조직된 그룹에 저장됩니다.

1980년에 후쿠시마라는 연구자가 계층적 신경망 모델을 제안했습니다. 그는 그것을 신인지론이라고 불렀습니다. 이 모델은 단순하고 복잡한 세포의 개념에서 영감을 얻었습니다. 신인지론은 물체의 형상에 대해 배우면서 패턴을 인식할 수 있다는 것입니다.

이후 1998년 벵기오, 르쿤, 보투, 해프너에 의해 컨볼루션 신경망이 소개되었습니다. 그들의 첫 번째 Convolutional Neural Network는 LeNet-5라고 불렸으며 손으로 쓴 숫자와 숫자를 구분할 수 있었습니다.

Architecture

나머지 부분에서는 CNN의 구조를 살펴보고 파이썬의 구현도 알아보겠습니다.

Convolutional Neural Networks는 일반 Neual Networks와 다른 아키텍처를 가지고 있습니다. 일반 신경망은 일련의 숨겨진 레이어를 통해 입력을 변환합니다. 모든 층은 일련의 뉴런으로 이루어져 있으며, 각 층은 이전의 층에 있는 모든 뉴런과 완전히 연결되어 있습니다. 마지막으로, 예측을 나타내는 마지막 완전 연결 계층, 즉 출력 계층이 있습니다.

컨볼루션 신경망은 약간 다릅니다. 우선 층은 폭, 높이, 깊이 등 3차원으로 구성됩니다. 또한, 한 층의 뉴런은 다음 층의 모든 뉴런과 연결되지 않고 단지 작은 영역에만 연결됩니다. 마지막으로, 최종 산출물은 깊이 차원을 따라 구성된 확률 점수의 단일 벡터로 감소될 것입니다.

CNN은 두 가지 요소로 이루어져 있다.

– 히든 레이어

이 파트에서, 네트워크는 피쳐들이 감지되는 동안 일련의 콘볼루션과 풀링 작업을 수행합니다. 만약 여러분이 얼룩말의 사진을 가지고 있다면, 이 부분은 네트워크가 그것의 줄무늬, 두 귀, 네 개의 다리를 인식하는 부분입니다.

– 분류 부분

여기서 완전히 연결된 층(fully connected layer)은 이러한 추출된 특징들 위에 분류자 역할을 합니다. 그들은 알고리즘이 예측하는 대로 영상에 있는 물체에 대한 확률을 할당합니다.

# before we start building we import the libraries

import numpy as np

from keras.layers import Conv2D, Activation, MaxPool2D, Flatten, Densefrom keras.models import Sequential

Feature extraction

콘볼루션은 CNN의 주요 구성 요소 중 하나입니다. convolution이라는 용어는 세 번째 함수를 생성하기 위해 두 함수의 수학적인 조합을 말합니다. 이것은 두 세트의 정보를 병합합니다.

CNN의 경우 입력 데이터에 대해 필터나 커널을 사용하여 convolution을 수행하여 피쳐 맵을 생서합니다.

우리는 필터를 Input 위로 밀어넣음으로써 합칩니다. 모든 위치에서 매트릭스 곱셈이 수행되고 결과를 Feature Map에 요약합니다.

아래의 애니메이션에서는, convolution 동작을 볼 수 있습니다. 필터(녹색 사각형)가 우리의 입력(파란색 사각형) 위로 가는 것을 볼 수 있으며, 합한 합은 피쳐 맵(빨간색 사각형)으로 들어갑니다.

우리 필터의 영역은 뉴런 세포의 이름을 따서 수용장이라고도 불립니다. 이 필터의 크기는 3×3입니다.

설명을 위해서 2D로 동작을 보여드렸지만, 실제로는 3D로 진행되는 콘볼루션입니다. 각 이미지는 폭, 높이 및 깊이에 대한 디멘션을 가진 3D 매트릭스로 표현됩니다. 깊이는 이미지에 사용되는 색상 채널(RGB) 때문에 차원이 됩니다.

입력에 수많은 난해도를 부여하는데, 각 작업에서 다른 필터를 사용합니다. 이렇게 하면 피쳐 맵이 달라집니다. 결국, 이러한 피쳐 맵을 모두 취하여, 그것들을 콘볼루션 계층의 최종 출력물로 합칩니다.

다른 신경망과 마찬가지로, 출력을 비선형적으로 만들기 위해 활성화 기능을 사용합니다. Convolutional Neural Network의 경우, convolution의 출력은 활성화 기능을 통해 전달됩니다. 이것은 ReLU 활성화 기능일 수도 있습니다.

스트라이드는 매번 콘볼루션 필터가 움직이는 단계의 크기입니다. 보폭 크기는 보통 1이며, 이는 필터가 픽셀을 픽셀 단위로 옮겨가는 것을 의미합니다. 스트라이드 크기를 증가시킴으로써, 필터는 더 큰 간격을 두고 Input 위로 들어가므로 셀 사이에 겹치는 것이 적어집니다.

아래의 애니메이션은 1의 움직임을 보여줍니다.

피쳐 맵의 크기는 항상 Input보다 작기 때문에, 피쳐 맵이 축소되는 것을 막기 위해 무엇인가를 해야 합니다. 여기가 바로 패딩을 사용하는 곳입니다.

0 값 픽셀 층을 추가하여 입력에 0을 둘렀으므로 피쳐 맵이 줄어들지 않습니다. 패딩은 콘볼루션을 수행한 후 공간 크기를 일정하게 유지하는 것 외에도 성능을 향상시키고 커널과 스트라이드 크기가 입력에 맞도록 합니다.

콘볼루션 레이어 후 CNN 레이어 사이에 풀링 레이어를 추가하는 것이 일반적입니다. 풀링의 기능은 네트워크의 매개변수 및 연산을 줄이기 위해 치수성을 지속적으로 감소시킵니다. 이렇게 하면 훈련 시간이 단축되고 오버핏을 제어할 수 있습니다.

풀링의 가장 빈번한 유형은 각 창에서 최대값을 차지하는 최대 풀링입니다. 창 크기를 미리 지정해야 합니다. 이는 중요한 정보를 유지하는 동시에 피쳐 맵 크기를 감소시킵니다.

따라서 CNN을 사용할 때 우리가 결정해야 할 4가지 중요한 하이퍼 파라미터는 다음과 같습니다.

– 커널 사이즈

– 필터 수(즉, 사용할 필터 수)

– 스트라이드(필터의 계단 크기)

– 패딩

# Images fed into this model are 512 x 512 pixels with 3 channels

img_shape = ( 28 , 28 , 1 )

# Set up the model

model = Sequential ()

# Add convolutional layer with 3, 3 by 3 filters and a stride size of 1 # Set padding so that input size equals output size

model.add ( Conv2D ( 6 , 2 , input_shape = img_shape ))

# Add relu activation to the layer

model.add ( Activation ( ‘ relu ‘ ))

#Pooling

model.add ( MaxPool2D ( 2 ))

연결층을 시각화하는 좋은 방법은 아래와 같습니다. 잠깐 보고 무슨 일이 일어나고 있는지 정말로 이해하면 좋을 것 같습니다.

Classification

연결 층과 풀링 레이어 후, Classification 부분은 몇 개의 완전히 연결된 레이어(fully connected layer)로 구성되어 있습니다. 그러나 완전히 연결된 이러한 계층은 1차원 데이터만 수용할 수 있습니다. 3D 데이터를 1D로 변환하기 위해서, 파이썬에서 flatten 함수를 사용합니다. 이것은 본질적으로 3D 볼륨을 1D 벡터로 변환합니다.

Convolutional NN의 마지막 계층은 완전히 연결된 계층입니다. 완전히 연결된 계층의 뉴런은 이전 계층을 모두 활성화하여 완전히 연결됩니다. 이 부분은 원칙적으로 일반 신경망과 동일합니다.

#Fully connected layers

# Use Flatten to convert 3D data to 1Dmodel.add(Flatten())

# Add dense layer with 10 neuronsmodel.add(Dense(10))

# we use the softmax activation function for our last layermodel.add(Activation(‘softmax’))

# give an overview of our model

model.summary

# _________________________________________________________________ # Layer (type) Output Shape Param # ================================================================= # conv2d_1 (Conv2D) (None, 27, 27, 6) 30 # _________________________________________________________________ # activation_1 (Activation) (None, 27, 27, 6) 0 # _________________________________________________________________ # max_pooling2d_1 (MaxPooling2 (None, 13, 13, 6) 0 # _________________________________________________________________ # flatten_1 (Flatten) (None, 1014) 0 # _________________________________________________________________ # dense_1 (Dense) (None, 10) 10150 # _________________________________________________________________ # activation_2 (Activation) (None, 10) 0 # ================================================================= # Total params: 10,180Trainable params: 10,180Non-trainable params: 0 # __________________________________________________________________

Training

CNN을 훈련시키는 것은 백프로파제이션이나 구배계(gradient down)를 이용하는 일반 신경망과 같은 방식으로 동작합니다. 그러나, 여기에서는 조금 더 수학적으로 복잡합니다. 그 이유는 복잡한 작업 때문입니다.

“”” Before the training process, we have to put together a learning process in a particular form. It consists of 3 elements: an optimiser, a loss function and a metric. “””

model.compile ( loss = ‘ sparse_categorical_crossentropy ‘ , optimizer = ‘ adam ‘ , metrics =[ ‘ acc ‘ ])

# dataset with handwritten digits to train the model onfrom keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data ()

x_train = np.expand_dims ( x_train, – 1 )

x_test = np.expand_dims ( x_test, – 1 )

# Train the model, iterating on the data in batches of 32 samples# for 10 epochs

model.fit ( x_train, y_train, batch_size = 32 , epochs = 10 , validation_data = (x_test,y_test)

# Training…

Summary

요약하면 CNN은 특히 이미지 분류와 인식에 유용합니다. 두 개의 주요 부분을 가지고 있습니다. 바로 피쳐 추출 부분과 분류 부분입니다.

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지를 주입하여, CNN이 생각하는 물체가 보이는지 또는 텍스트로 이미지를 묘사할 수 있도록 하는 것입니다.

반응형

인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 최근 답변 219개

당신은 주제를 찾고 있습니까 “인공 지능 cnn – 딥러닝 CNN, 개념만 이해하기“? 다음 카테고리의 웹사이트 https://ppa.dianhac.com.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.dianhac.com.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 인공지능 개발자 모임 이(가) 작성한 기사에는 조회수 21,938회 및 좋아요 435개 개의 좋아요가 있습니다.

결과적으로 이미지 공간 정보 유실로 인한 정보 부족으로 인공 신경망이 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있다. 이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델이 바로 CNN(Convolutional Neural Network)이다.

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

CNN(Convolutional Neural Network)은

이미지를 처리하는 딥러닝 모델입니다.

컨볼루션 신경망이 탄생하게 된 배경과

구체적인 동작방식에 대해 알아봤습니다.

(클로바더빙으로 제작한 AI 보이스입니다.)

[ 인공지능 개발자 모임 ]– https://www.facebook.com/groups/AIDevKr/– http://aidev.co.kr/

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지 …

+ 자세한 내용은 여기를 클릭하십시오

Source: jjeongil.tistory.com

Date Published: 8/26/2022

View: 3376

CNN(Convolutional Neural Network)에 대해 알아보려고 한다. … CNN은 시각적 이미지를 분석하는 데 사용되는 깊고 피드-포워드적인 인공신경망의 한 종류 …

+ 여기에 표시

Source: velog.io

Date Published: 1/5/2021

View: 8643

머신러닝(Machine Learning) 혹은 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻합니다. 딥 …

+ 여기에 표시

Source: ebbnflow.tistory.com

Date Published: 6/1/2022

View: 1884

인공지능 개발자들은 이런 문제점을 해결하기 위해 CNN(Convolutional Neural Network)이라는 인공신경망을 개발하였습니다. 컴퓨터에게 이미지에서 특징적인 부분만을 …

+ 여기에 표시

Source: ai4school.org

Date Published: 5/3/2021

View: 8950

Facebook AI Research (FAIR)의 Detectron 시스템은 이러한 모든 SOTAstate of the art급 객체 탐지 알고리즘을 적용하였으며, 오픈 소스이다. CNN의 대표적인 활용 …

+ 자세한 내용은 여기를 클릭하십시오

Source: atcold.github.io

Date Published: 12/12/2021

View: 9855

본 연구는 인공지능 분야의 딥러닝 기술을 기반으로 한 하수관 손상의 자동 탐지 분류 시스템을 제안한다. 성능의. 최적화를 위하여 DB 획득 시 발생된 조도 및 그림자 …

+ 여기를 클릭

Source: www.koreascience.or.kr

Date Published: 3/27/2021

View: 7662

CNN 구조(9) – MobileNet. 인공지능의 성능이 입증됨에 따라, 고성능 GPU를 쓸 수 없는 모바일 폰이나 embedded 환경에서도 실시간 인공지능 구현에 …

+ 자세한 내용은 여기를 클릭하십시오

Source: blog.naver.com

Date Published: 12/25/2021

View: 8065

인공지능 : CNN(Convolutional Neural Networks) 개념, 예제, 분석. CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + …

+ 자세한 내용은 여기를 클릭하십시오

Source: you.xosotanphat.com

Date Published: 1/25/2021

View: 6509

주제와 관련된 더 많은 사진을 참조하십시오 딥러닝 CNN, 개념만 이해하기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

반응형

이 글에서는 CNN(Convolutional Neural Networks)을 탐구하고, 높은 수준에서 그것들이 어떻게 두뇌의 구조에서 영감을 얻는지 살펴보기로 하겠습니다.

The Brain

우리는 끊임없이 주변의 세계를 분석합니다. 의식적인 노력 없이, 우리는 우리가 보는 모든 것에 대해 예측을 하고, 그것에 따라 행동합니다. 우리가 어떤 것을 볼 때, 과거에 배운 것을 바탕으로 모든 대상에 라벨을 붙입니다.

여러분은 아마 “저 아이는 의자 위에 서 있는 행복한 소년이다.”라고 생각할 수 있습니다. 아니면 비명을 지른다고 생각할 수 있습니다. 또는 케이크를 망치려는 것으로 볼 수 있습니다.

이것이 우리가 하루 종일 아낌없이 하는 것입니다. 우리는 패턴을 보고, 라벨을 붙이고, 예측하고, 인지합니다. 하지만 어떻게 그렇게 할 수 있을까요? 우리가 보는 모든 것을 어떻게 해석할 수 있을까요?

자연은 이것을 위해 시스템을 만드는 데 5억년이 넘게 걸렸습니다. 즉, 눈과 뇌의 상호작용이 우리 주변의 세상을 바라 볼 수 있는 근본적인 이유입니다.

보는 것에 대한 실제적인 해석은 뇌에서, 1차 시각적 피질에서 일어납니다.

물체를 볼 때, 눈에 있는 빛 수용기는 입력이 처리되고 있는 1차 시각피질로 신호를 보냅니다. 1차 시각피질은 눈이 보는 것을 이해합니다.

이 모든 것이 우리에게 매우 자연스러운 것처럼 보입니다. 우리는 삶에서 보는 모든 대상과 사람들을 인식할 수 있다는 것이 얼마나 특별한지에 대해 거의 생각하지도 않습니다. 뇌의 뉴런과 연결의 매우 복잡한 계층 구조는 물체를 기억하고 라벨을 붙이는 이 과정에 중요한 역할을 합니다.

예를 들어, 우산이 무엇인지 어떻게 배웠는지 생각해 보겠습니다. 부모님이나 가족은 우리에게 직접적인 환경에 있는 물건들의 이름을 말해주었습니다. 우리는 주어진 예를 통해 배웠습니다. 천천히 그러나 확실히 우리는 우리의 환경에서 특정한 것들을 점점 더 자주 인식하기 시작했습니다. 다음에 우리가 그것들을 보았을 때, 우리는 즉시 이 물체의 이름이 무엇인지 알 수 있습니다. 그것들은 바로 우리의 모델이 되는 것입니다.

Convolutional Neural Networks

아이가 사물을 인식하는 법을 배우는 방법과 유사하게, 우리는 입력 내용을 일반화하고 이전에 보지 못했던 이미지에 대한 예측을 하기 전에 수백만 장의 사진을 알고리즘에 보여줄 필요가 있습니다.

컴퓨터는 우리와는 다른 방식으로 ‘보고’ 있습니다. 그들의 세계는 숫자로만 이루어져 있습니다. 모든 이미지는 픽셀로 알려진 2차원 숫자의 배열로 표현됩니다.

하지만 컴퓨터가 다른 방식으로 이미지를 인식한다는 사실로, 우리가 컴퓨터에게 패턴을 인식하도록 훈련시킬 수 없다는 것을 의미하지는 않습니다. 우리는 단지 어떤 이미지가 다른 방식으로 존재하는지 생각하기만 하면 됩니다.

영상에서 물체를 인식하는 방법을 알고리즘에 가르치기 위해, 우리는 특정 유형의 인공 신경망을 사용합니다. ( CNN(Convolutional Neural Network) )

CNN은 뇌에서 영감을 받았습니다다. 포유류가 세상을 시각적으로 인식하는 방법에 대한 새로운 모델을 제안된 것입니다. 고양이와 원숭이 시각 피질에는 직접적인 환경에서 독점적으로 반응하는 뉴런이 포함되어 있다는 것을 알아내었습니다.

논문에서, 각각 다른 방식으로 작용하는 뇌의 시각 뉴런 세포의 두 가지 기본적인 형태, 즉 단순한 세포와 복잡한 세포에 대해 설명했습니다.

복잡한 세포는 망막의 절대 위치가 바뀌어도 일정한 자극에 계속 반응합니다.

시각에서, 단일 감각 신경 세포의 수용 영역은 망막의 특정 영역으로, 그 신경 세포의 발화에 무언가가 영향을 미칩니다. 모든 감각 신경 세포는 유사한 수용장을 가지고 있습니다.

게다가, 계층의 개념은 뇌에서 중요한 역할을 합니다. 정보는 패턴의 순서에 따라 순차적으로 저장됩니다. 뇌의 가장 바깥 층인 신피질은 정보를 계층적으로 저장합니다. 그것은 피질 기둥이나 신피질에 있는 뉴런의 균일하게 조직된 그룹에 저장됩니다.

1980년에 후쿠시마라는 연구자가 계층적 신경망 모델을 제안했습니다. 그는 그것을 신인지론이라고 불렀습니다. 이 모델은 단순하고 복잡한 세포의 개념에서 영감을 얻었습니다. 신인지론은 물체의 형상에 대해 배우면서 패턴을 인식할 수 있다는 것입니다.

이후 1998년 벵기오, 르쿤, 보투, 해프너에 의해 컨볼루션 신경망이 소개되었습니다. 그들의 첫 번째 Convolutional Neural Network는 LeNet-5라고 불렸으며 손으로 쓴 숫자와 숫자를 구분할 수 있었습니다.

Architecture

나머지 부분에서는 CNN의 구조를 살펴보고 파이썬의 구현도 알아보겠습니다.

Convolutional Neural Networks는 일반 Neual Networks와 다른 아키텍처를 가지고 있습니다. 일반 신경망은 일련의 숨겨진 레이어를 통해 입력을 변환합니다. 모든 층은 일련의 뉴런으로 이루어져 있으며, 각 층은 이전의 층에 있는 모든 뉴런과 완전히 연결되어 있습니다. 마지막으로, 예측을 나타내는 마지막 완전 연결 계층, 즉 출력 계층이 있습니다.

컨볼루션 신경망은 약간 다릅니다. 우선 층은 폭, 높이, 깊이 등 3차원으로 구성됩니다. 또한, 한 층의 뉴런은 다음 층의 모든 뉴런과 연결되지 않고 단지 작은 영역에만 연결됩니다. 마지막으로, 최종 산출물은 깊이 차원을 따라 구성된 확률 점수의 단일 벡터로 감소될 것입니다.

CNN은 두 가지 요소로 이루어져 있다.

– 히든 레이어

이 파트에서, 네트워크는 피쳐들이 감지되는 동안 일련의 콘볼루션과 풀링 작업을 수행합니다. 만약 여러분이 얼룩말의 사진을 가지고 있다면, 이 부분은 네트워크가 그것의 줄무늬, 두 귀, 네 개의 다리를 인식하는 부분입니다.

– 분류 부분

여기서 완전히 연결된 층(fully connected layer)은 이러한 추출된 특징들 위에 분류자 역할을 합니다. 그들은 알고리즘이 예측하는 대로 영상에 있는 물체에 대한 확률을 할당합니다.

# before we start building we import the libraries

import numpy as np

from keras.layers import Conv2D, Activation, MaxPool2D, Flatten, Densefrom keras.models import Sequential

Feature extraction

콘볼루션은 CNN의 주요 구성 요소 중 하나입니다. convolution이라는 용어는 세 번째 함수를 생성하기 위해 두 함수의 수학적인 조합을 말합니다. 이것은 두 세트의 정보를 병합합니다.

CNN의 경우 입력 데이터에 대해 필터나 커널을 사용하여 convolution을 수행하여 피쳐 맵을 생서합니다.

우리는 필터를 Input 위로 밀어넣음으로써 합칩니다. 모든 위치에서 매트릭스 곱셈이 수행되고 결과를 Feature Map에 요약합니다.

아래의 애니메이션에서는, convolution 동작을 볼 수 있습니다. 필터(녹색 사각형)가 우리의 입력(파란색 사각형) 위로 가는 것을 볼 수 있으며, 합한 합은 피쳐 맵(빨간색 사각형)으로 들어갑니다.

우리 필터의 영역은 뉴런 세포의 이름을 따서 수용장이라고도 불립니다. 이 필터의 크기는 3×3입니다.

설명을 위해서 2D로 동작을 보여드렸지만, 실제로는 3D로 진행되는 콘볼루션입니다. 각 이미지는 폭, 높이 및 깊이에 대한 디멘션을 가진 3D 매트릭스로 표현됩니다. 깊이는 이미지에 사용되는 색상 채널(RGB) 때문에 차원이 됩니다.

입력에 수많은 난해도를 부여하는데, 각 작업에서 다른 필터를 사용합니다. 이렇게 하면 피쳐 맵이 달라집니다. 결국, 이러한 피쳐 맵을 모두 취하여, 그것들을 콘볼루션 계층의 최종 출력물로 합칩니다.

다른 신경망과 마찬가지로, 출력을 비선형적으로 만들기 위해 활성화 기능을 사용합니다. Convolutional Neural Network의 경우, convolution의 출력은 활성화 기능을 통해 전달됩니다. 이것은 ReLU 활성화 기능일 수도 있습니다.

스트라이드는 매번 콘볼루션 필터가 움직이는 단계의 크기입니다. 보폭 크기는 보통 1이며, 이는 필터가 픽셀을 픽셀 단위로 옮겨가는 것을 의미합니다. 스트라이드 크기를 증가시킴으로써, 필터는 더 큰 간격을 두고 Input 위로 들어가므로 셀 사이에 겹치는 것이 적어집니다.

아래의 애니메이션은 1의 움직임을 보여줍니다.

피쳐 맵의 크기는 항상 Input보다 작기 때문에, 피쳐 맵이 축소되는 것을 막기 위해 무엇인가를 해야 합니다. 여기가 바로 패딩을 사용하는 곳입니다.

0 값 픽셀 층을 추가하여 입력에 0을 둘렀으므로 피쳐 맵이 줄어들지 않습니다. 패딩은 콘볼루션을 수행한 후 공간 크기를 일정하게 유지하는 것 외에도 성능을 향상시키고 커널과 스트라이드 크기가 입력에 맞도록 합니다.

콘볼루션 레이어 후 CNN 레이어 사이에 풀링 레이어를 추가하는 것이 일반적입니다. 풀링의 기능은 네트워크의 매개변수 및 연산을 줄이기 위해 치수성을 지속적으로 감소시킵니다. 이렇게 하면 훈련 시간이 단축되고 오버핏을 제어할 수 있습니다.

풀링의 가장 빈번한 유형은 각 창에서 최대값을 차지하는 최대 풀링입니다. 창 크기를 미리 지정해야 합니다. 이는 중요한 정보를 유지하는 동시에 피쳐 맵 크기를 감소시킵니다.

따라서 CNN을 사용할 때 우리가 결정해야 할 4가지 중요한 하이퍼 파라미터는 다음과 같습니다.

– 커널 사이즈

– 필터 수(즉, 사용할 필터 수)

– 스트라이드(필터의 계단 크기)

– 패딩

# Images fed into this model are 512 x 512 pixels with 3 channels

img_shape = ( 28 , 28 , 1 )

# Set up the model

model = Sequential ()

# Add convolutional layer with 3, 3 by 3 filters and a stride size of 1 # Set padding so that input size equals output size

model.add ( Conv2D ( 6 , 2 , input_shape = img_shape ))

# Add relu activation to the layer

model.add ( Activation ( ‘ relu ‘ ))

#Pooling

model.add ( MaxPool2D ( 2 ))

연결층을 시각화하는 좋은 방법은 아래와 같습니다. 잠깐 보고 무슨 일이 일어나고 있는지 정말로 이해하면 좋을 것 같습니다.

Classification

연결 층과 풀링 레이어 후, Classification 부분은 몇 개의 완전히 연결된 레이어(fully connected layer)로 구성되어 있습니다. 그러나 완전히 연결된 이러한 계층은 1차원 데이터만 수용할 수 있습니다. 3D 데이터를 1D로 변환하기 위해서, 파이썬에서 flatten 함수를 사용합니다. 이것은 본질적으로 3D 볼륨을 1D 벡터로 변환합니다.

Convolutional NN의 마지막 계층은 완전히 연결된 계층입니다. 완전히 연결된 계층의 뉴런은 이전 계층을 모두 활성화하여 완전히 연결됩니다. 이 부분은 원칙적으로 일반 신경망과 동일합니다.

#Fully connected layers

# Use Flatten to convert 3D data to 1Dmodel.add(Flatten())

# Add dense layer with 10 neuronsmodel.add(Dense(10))

# we use the softmax activation function for our last layermodel.add(Activation(‘softmax’))

# give an overview of our model

model.summary

# _________________________________________________________________ # Layer (type) Output Shape Param # ================================================================= # conv2d_1 (Conv2D) (None, 27, 27, 6) 30 # _________________________________________________________________ # activation_1 (Activation) (None, 27, 27, 6) 0 # _________________________________________________________________ # max_pooling2d_1 (MaxPooling2 (None, 13, 13, 6) 0 # _________________________________________________________________ # flatten_1 (Flatten) (None, 1014) 0 # _________________________________________________________________ # dense_1 (Dense) (None, 10) 10150 # _________________________________________________________________ # activation_2 (Activation) (None, 10) 0 # ================================================================= # Total params: 10,180Trainable params: 10,180Non-trainable params: 0 # __________________________________________________________________

Training

CNN을 훈련시키는 것은 백프로파제이션이나 구배계(gradient down)를 이용하는 일반 신경망과 같은 방식으로 동작합니다. 그러나, 여기에서는 조금 더 수학적으로 복잡합니다. 그 이유는 복잡한 작업 때문입니다.

“”” Before the training process, we have to put together a learning process in a particular form. It consists of 3 elements: an optimiser, a loss function and a metric. “””

model.compile ( loss = ‘ sparse_categorical_crossentropy ‘ , optimizer = ‘ adam ‘ , metrics =[ ‘ acc ‘ ])

# dataset with handwritten digits to train the model onfrom keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data ()

x_train = np.expand_dims ( x_train, – 1 )

x_test = np.expand_dims ( x_test, – 1 )

# Train the model, iterating on the data in batches of 32 samples# for 10 epochs

model.fit ( x_train, y_train, batch_size = 32 , epochs = 10 , validation_data = (x_test,y_test)

# Training…

Summary

요약하면 CNN은 특히 이미지 분류와 인식에 유용합니다. 두 개의 주요 부분을 가지고 있습니다. 바로 피쳐 추출 부분과 분류 부분입니다.

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지를 주입하여, CNN이 생각하는 물체가 보이는지 또는 텍스트로 이미지를 묘사할 수 있도록 하는 것입니다.

반응형

CNN의 발전과 활용, 왜 딥러닝인가? · 딥러닝

CNN의 발전과 활용, 왜 딥러닝인가?

$$\gdef \sam #1 {\mathrm{softargmax}(#1)}$$ $$\gdef \vect #1 {\boldsymbol{#1}} $$ $$\gdef \matr #1 {\boldsymbol{#1}} $$ $$\gdef \E {\mathbb{E}} $$ $$\gdef \V {\mathbb{V}} $$ $$\gdef \R {\mathbb{R}} $$ $$\gdef \N {\mathbb{N}} $$ $$\gdef \relu #1 {\texttt{ReLU}(#1)} $$ $$\gdef \D {\,\mathrm{d}} $$ $$\gdef \deriv #1 #2 {\frac{\D #1}{\D #2}}$$ $$\gdef \pd #1 #2 {\frac{\partial #1}{\partial #2}}$$ $$\gdef \set #1 {\left\lbrace #1 \right\rbrace} $$ % My colours $$\gdef \aqua #1 {\textcolor{8dd3c7}{#1}} $$ $$\gdef \yellow #1 {\textcolor{ffffb3}{#1}} $$ $$\gdef \lavender #1 {\textcolor{bebada}{#1}} $$ $$\gdef \red #1 {\textcolor{fb8072}{#1}} $$ $$\gdef \blue #1 {\textcolor{80b1d3}{#1}} $$ $$\gdef \orange #1 {\textcolor{fdb462}{#1}} $$ $$\gdef \green #1 {\textcolor{b3de69}{#1}} $$ $$\gdef \pink #1 {\textcolor{fccde5}{#1}} $$ $$\gdef \vgrey #1 {\textcolor{d9d9d9}{#1}} $$ $$\gdef \violet #1 {\textcolor{bc80bd}{#1}} $$ $$\gdef \unka #1 {\textcolor{ccebc5}{#1}} $$ $$\gdef \unkb #1 {\textcolor{ffed6f}{#1}} $$ % Vectors $$\gdef \vx {\pink{\vect{x }}} $$ $$\gdef \vy {\blue{\vect{y }}} $$ $$\gdef \vb {\vect{b}} $$ $$\gdef \vz {\orange{\vect{z }}} $$ $$\gdef \vtheta {\vect{\theta }} $$ $$\gdef \vh {\green{\vect{h }}} $$ $$\gdef \vq {\aqua{\vect{q }}} $$ $$\gdef \vk {\yellow{\vect{k }}} $$ $$\gdef \vv {\green{\vect{v }}} $$ $$\gdef \vytilde {\violet{\tilde{\vect{y}}}} $$ $$\gdef \vyhat {\red{\hat{\vect{y}}}} $$ $$\gdef \vycheck {\blue{\check{\vect{y}}}} $$ $$\gdef \vzcheck {\blue{\check{\vect{z}}}} $$ $$\gdef \vztilde {\green{\tilde{\vect{z}}}} $$ $$\gdef \vmu {\green{\vect{\mu}}} $$ $$\gdef \vu {\orange{\vect{u}}} $$ % Matrices $$\gdef \mW {\matr{W}} $$ $$\gdef \mA {\matr{A}} $$ $$\gdef \mX {\pink{\matr{X}}} $$ $$\gdef \mY {\blue{\matr{Y}}} $$ $$\gdef \mQ {\aqua{\matr{Q }}} $$ $$\gdef \mK {\yellow{\matr{K }}} $$ $$\gdef \mV {\lavender{\matr{V }}} $$ $$\gdef \mH {\green{\matr{H }}} $$ % Coloured math $$\gdef \cx {\pink{x}} $$ $$\gdef \ctheta {\orange{\theta}} $$ $$\gdef \cz {\orange{z}} $$ $$\gdef \Enc {\lavender{\text{Enc}}} $$ $$\gdef \Dec {\aqua{\text{Dec}}}$$

🎙️

동물의 시각 피질에서 뉴런은 시야 내의 특정 영역에 존재하는 특정 윤곽선 표현에 대해 반응한다. 특정한 영역의 특정한 표현을 감지하는 특정한 뉴런들이 존재한다.

Fukushima (1982)는 두 가지 이론에 입각해 이러한 뇌와 똑같이 동작하는 신경망neural net(NN)을 만들었다. 하나는 시야 전체에 대응하는 뉴런들이 있다는 것이고, 또 하나는 시야 내의 표현을 감지하는 간단한 세포들로부터 정보를 가져오는 복잡한 세포가 있다는 것이다. 그 결과, 사물이 움직여도 간단한 세포들의 활성화 여부들만 변화하고 복잡한 세포의 활성화에는 변화가 없을 거라는 이론이다. (합성곱 풀링Convolutional Pooling)

얀 르쿤 (1990)은 손으로 쓴 숫자를 인식할 합성곱 신경망Convolutional Neural Network(CNN)을 학습시키는데 역전파를 활용하였다. 유튜브에서 1992년 촬영된 다양한 스타일로 작성된 숫자를 인식하는 이 알고리즘의 시연 영상을 찾아볼 수 있다. 당시 문자/패턴 인식 분야에서, 앤드 투 앤드로 학습된 모델을 활용하는 것은 새로운 사례였다. 종래에는, 지도 학습된 모델과 특징 추출기를 함께 사용하는 것이 일반적이었기 때문이다.

이 새로운 CNN 시스템은 한 이미지 안에 여러 숫자가 적혀있는 것도 인식할 수 있었다. 이를 위해, 사람들은 CNN 시스템에 입력을 위한 작은 창을 만들고, 이 창이 전체 이미지를 훑고 지나가게 했다. CNN 시스템이 작동하면, 특정 숫자가 이미지 안에 있음을 알 수 있었다.

얀 르쿤의 시도 이후, 이러한 기술은 안면/인물 감지와 시맨틱 분할semantic segmentation(픽셀 단위의 인식)에도 적용되었다. Hadsell (2009)와 Farabet (2012)과 같은 사례가 있다. 이는 결국 업계에서 굉장히 유명해졌고, 점차 자율주행의 차선 추적에도 적용되었다.

1980년대엔 CNN을 학습시키기 위한 특별한 하드웨어가 논의되었지만, 점차 관심이 식었었다. 그러나 최근, 이는 다시 논의되기 시작했다.

(비록 당시에 이 단어가 사용되진 않았지만) 딥러닝 혁명은 2010년에서 2013년 사이에 일어났다. 학자들은 대규모의 CNN을 빠르게 학습시킬 수 있는 알고리즘을 연구했다. Krizhevsky (2012)는 AlexNet을 개발했다. 원래 사용되던 CNN 보다 훨씬 거대한 모델이었다. 이 모델은 ImageNet(130만 개의 샘플) 데이터에서 GPU를 통해 학습되었다. 고작 몇 주만에 AlexNet은 당시 최고의 성능을 내던 모델을 큰 성능 차이로 압도했다. – top-5 error rate에서 25.8% vs 16.4%의 성능차를 냈다.

AlexNet의 성공을 목도한 컴퓨터 비전(CV) 학계는 CNN에 매료됐다. 2011~2012년 사이에 CNN을 언급한 논문들은 모두 거부된 반면, 2016년 이후 대부분의 CV 논문들은 CNN을 활용한다.

수년 간, CNN 모델의 계층은 점점 깊어졌다: LeNet – 7, AlexNet – 12, VGG – 19, ResNet – 50. 그러나 그만큼 신경망은 출력과 모델의 크기, 정확도를 측정하는데 더 많은 연산 성능을 요구하게 되었다. 그러나, 최근 이슈가 되는 것은 이러한 신경망을 어떻게 압축하여 연산 속도를 빠르게 하느냐는 것이다.

다계층 신경망은 데이터의 구성적 특징을 잘 활용하기에 강력하다. 한 계층에서 객체들의 조합은 다음 계층에서 하나의 객체를 구성한다. 우리는 이러한 계층을 여럿 쌓아서 신경망이 적절한 특징의 조합을 학습하도록 하여, 딥러닝 아키텍처라고 부르는 것을 만든다. 즉, 딥러닝 신경망은 본질적으로 계층적이다. (역주. 나뭇잎과 줄기, 꽃이 합쳐저 나무라는 하나의 객체가 되는 것을 생각하면 좋다.)

딥러닝은 컴퓨터 비전 분야에 폭발적인 발전을 야기했고, 이제 컴퓨터 비전은 객체를 분류하는 것을 넘어 영역을 정확히 감지하고, 객체의 공간적 특성을 감지하는 수준까지 발전했다. Mask-RCNN과 RetinaNet 구조가 이 분야의 발전을 주도하고 있다.

Mask RCNN은 이미지 내의 각 객체들의 영역을 분할하기 위해 등장헀다. 신경망의 입력과 출력은 모두 이미지이다. 이 구조는 또한 같은 이미지에서 동일한 유형의 서로 다른 객체를 식별하는 인스턴스 분할instance segmentation에도 사용할 수 있다. Facebook AI Research (FAIR)의 Detectron 시스템은 이러한 모든 SOTAstate of the art급 객체 탐지 알고리즘을 적용하였으며, 오픈 소스이다.

CNN의 대표적인 활용사례는 자율주행 자동차와 의료 영상 분석 분야이다.

딥러닝의 과학적/수학적 기반에 대한 연구가 꽤 진행되었음에도, 여전히 탐구할만한 흥미로운 주제들이 남아있다. 두 계층만으로도 모든 경우에 딥러닝 적용이 가능한데도 더 많은 계층을 쌓으면 성능이 좋아지는 것일까? 왜 CNN은 음성, 이미지, 텍스트 등의 데이터에서 잘 동작할까? 딥러닝이 볼록하지 않은 형태의 함수를 갖는 문제에서도 잘 작동하는 이유는 무엇일까? 필요 이상으로 큰 모델도 잘 작동하는 이유가 뭘까?

특징 추출은 표현의 차원을 확장하는 것으로 볼 수 있다. 이는 확장된 특징이 선형 분리 가능한 경향이 있기 때문인데, 고차원 공간의 데이터 포인트는 분리 가능한 축의 수가 많아서, 선형 분리 가능할 확률이 높기 때문이다.

초기 머신 러닝 전문가들은 고성능의 수작업으로 만들어진, 각 과업에 특화된 특징을 가진 인공지능 모델을 만들었다. 그러나 딥러닝의 발전으로, 모델들은 포괄적인 특징들을 자동으로 추출할 수 있게 되었다. 아래는 특징 추출에 일반적으로 사용되는 알고리즘 들이다.

Space tiling

Random Projections

Polynomial Classifier (feature cross-products)

Radial basis functions

Kernel Machines

데이터의 구성적 특징 덕분에, 학습된 특징들은 계층이 쌓일수록 추상적 개념을 표현할 수 있는 특성을 갖는다.

이미지 – 가장 작게 보면, 이미지는 픽셀들의 집합으로 볼 수 있다. 픽셀들의 집합은 물체의 윤곽선을 구성하며, 윤곽선의 집합은 texton(여러 윤곽선을 갖는 도형)을 구성한다. 마침내 texton이 모여 사물을 구성하고, 이러한 사물이 모여 이미지가 된다.

텍스트 – 비슷하게, 문자 데이터에도 고유한 계층이 존재한다. 문자들은 단어를, 단어는 문장을, 문장은 글을 구성한다. 마침내 전하고자 하는 이야기를 담은 글이 탄생하는 것이다.

음성 – 음성 데이터에서도 샘플이 모여 주파수와 소리를 구성하고, 소리가 모여 음절, 음절이 모여 단어와 말이 된다.

딥러닝을 단순히 생각하는 사람들은 이렇게 말한다. “모든 함수를 2개의 계층으로 구현할 수 있다면, 왜 굳이 더 깊은 층을 쌓아?”

예를들어, SVMsupport vector machine은 데이터의 범위span of data에서 선형 분류를 위한 초평면hyperplane을 찾는다. 즉, 추론이 학습 데이터의 범위 내에서 동작하는 것이다. SVM은 기본적으로 첫 번째 층이 “템플릿”, 두 번쨰 층이 선형 분리기인 아주 단순한 2 계층 신경망이다. 2 계층의 문제는 중간 계층의 복잡성과 크기가 입력 값의 크기 N에 대해 기하급수적으로 증가한다는 것이다. (어려운 문제를 해결하려면, 굉장히 많은 양의 템플릿이 필요하다.) 그러나 계층의 크기를 log(N)으로 확장하면 계층은 N에 대해 선형이 된다. 즉 시간과 공간 사이에 트레이드 오프가 발생하는 것이다.

비유하자면, 이는 게이트가 두 개 이하인 boolean 함수를 계산하는 회로를 설계하는 것과 같다. – 이렇게 해도 모든 boolean 함수를 구현할 수는 있다! 다만 복잡한 함수에서는 첫 계층의 시간 및 공간 복잡도(게이트의 수)가 순식간에 무한대로 수렴할 것이다.

심층적deep이 뭘까?

SVM은 계층이 두 개 밖에 없어 심층적이지 않다.

결정 트리 classification tree 모든 계층이 동일한 (원형)특징을 분석하기에 심층적이지 않다.

모든 계층이 동일한 (원형)특징을 분석하기에 심층적이지 않다. 심층deep 신경망은 여러 계층을 갖고, 이를 쌓아서 점차 추상적인(고차원적인) 특징을 다룬다.

어떻게 모델이 표현(좋은 특징)representation을 배울까?

매니폴드 가설: 데이터는 저차원 매니폴드에 존재한다. 존재 가능한 이미지의 집합은 당연히도 무한하다. 이 중에, “자연스러운” 이미지의 부분 집합이 속해있다. 예를 들어서, 사람의 사진은 사람이 움직일 수 있는 얼굴 근육들의 자유도와 그 갯수의 크기 정도order of magnitude에 따라 무한히 많이 존재한다. 이상적인(그리고 비현실적인) 특징 추출기는 사진에 영향을 줄 수 있는 모든 표현을 학습한다.(각 근육들, 조명, 각도 등)

수업 후 Q&A:

인공 지능 Cnn | 딥러닝 Cnn, 개념만 이해하기 192 개의 베스트 답변

당신은 주제를 찾고 있습니까 “인공 지능 cnn – 딥러닝 CNN, 개념만 이해하기“? 다음 카테고리의 웹사이트 https://you.giaohangso1.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.giaohangso1.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 인공지능 개발자 모임 이(가) 작성한 기사에는 조회수 21,586회 및 좋아요 430개 개의 좋아요가 있습니다.

특정한 영역의 특정한 표현을 감지하는 특정한 뉴런들이 존재한다. 얀 르쿤 (1990)은 손으로 쓴 숫자를 인식할 합성곱 신경망Convolutional Neural Network(CNN)을 학습시키는데 역전파를 활용하였다.

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

CNN(Convolutional Neural Network)은

이미지를 처리하는 딥러닝 모델입니다.

컨볼루션 신경망이 탄생하게 된 배경과

구체적인 동작방식에 대해 알아봤습니다.

(클로바더빙으로 제작한 AI 보이스입니다.)

[ 인공지능 개발자 모임 ]– https://www.facebook.com/groups/AIDevKr/– http://aidev.co.kr/

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지 …

+ 여기에 더 보기

Source: jjeongil.tistory.com

Date Published: 7/27/2022

View: 2300

CNN(Convolutional Neural Network)에 대해 알아보려고 한다. … CNN은 시각적 이미지를 분석하는 데 사용되는 깊고 피드-포워드적인 인공신경망의 한 종류 …

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 11/6/2022

View: 8391

머신러닝(Machine Learning) 혹은 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻합니다. 딥 …

+ 여기를 클릭

Source: ebbnflow.tistory.com

Date Published: 4/11/2022

View: 2337

키워드 : 딥러닝, CNN, CCTVs, 인공지능, 손상 탐지, 하수관. Key word : Artificial Intelligence, CCTVs, CNN, Deep Learning, Demage Detection, Sewer Inspection.

+ 자세한 내용은 여기를 클릭하십시오

Source: www.koreascience.or.kr

Date Published: 5/25/2021

View: 7330

CNN 구조(9) – MobileNet. 인공지능의 성능이 입증됨에 따라, 고성능 GPU를 쓸 수 없는 모바일 폰이나 embedded 환경에서도 실시간 인공지능 구현에 …

+ 여기에 보기

Source: blog.naver.com

Date Published: 2/7/2021

View: 5117

인공지능 개발자들은 이런 문제점을 해결하기 위해 CNN(Convolutional Neural Network)이라는 인공신경망을 개발하였습니다. 컴퓨터에게 이미지에서 특징적인 부분만을 …

+ 여기에 표시

Source: ai4school.org

Date Published: 3/1/2022

View: 4642

인공지능 기법(CNN)을 이용한 음성과 음악구분. 한상일. 한국기술교육대학교 산업경영학과. Speech-Music Discrimination Using Deep Learning. Sang-Il Han.

+ 여기를 클릭

Source: www.kais99.org

Date Published: 4/30/2022

View: 2448

CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 …

+ 여기에 표시

Source: zsunn.tistory.com

Date Published: 8/18/2021

View: 7235

CNN은 이미지 인식 등에 자주 사용되는 신경망의 구조이지만, 자연 언어 처리(NLP) 등 다른 용도로도 사용되고 있습니다. 이것은 한마디로 살인 현장에서 …

+ 여기를 클릭

Source: doooob.tistory.com

Date Published: 3/19/2021

View: 5130

주제와 관련된 더 많은 사진을 참조하십시오 딥러닝 CNN, 개념만 이해하기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

Mask RCNN은 이미지 내의 각 객체들의 영역을 분할하기 위해 등장헀다. 신경망의 입력과 출력은 모두 이미지이다. 이 구조는 또한 같은 이미지에서 동일한 유형의 서로 다른 객체를 식별하는 인스턴스 분할instance segmentation에도 사용할 수 있다. Facebook AI Research (FAIR)의 Detectron 시스템은 이러한 모든 SOTAstate of the art급 객체 탐지 알고리즘을 적용하였으며, 오픈 소스이다.

$$\gdef \sam #1 {\mathrm{softargmax}(#1)}$$ $$\gdef \vect #1 {\boldsymbol{#1}} $$ $$\gdef \matr #1 {\boldsymbol{#1}} $$ $$\gdef \E {\mathbb{E}} $$ $$\gdef \V {\mathbb{V}} $$ $$\gdef \R {\mathbb{R}} $$ $$\gdef \N {\mathbb{N}} $$ $$\gdef \relu #1 {\texttt{ReLU}(#1)} $$ $$\gdef \D {\,\mathrm{d}} $$ $$\gdef \deriv #1 #2 {\frac{\D #1}{\D #2}}$$ $$\gdef \pd #1 #2 {\frac{\partial #1}{\partial #2}}$$ $$\gdef \set #1 {\left\lbrace #1 \right\rbrace} $$ % My colours $$\gdef \aqua #1 {\textcolor{8dd3c7}{#1}} $$ $$\gdef \yellow #1 {\textcolor{ffffb3}{#1}} $$ $$\gdef \lavender #1 {\textcolor{bebada}{#1}} $$ $$\gdef \red #1 {\textcolor{fb8072}{#1}} $$ $$\gdef \blue #1 {\textcolor{80b1d3}{#1}} $$ $$\gdef \orange #1 {\textcolor{fdb462}{#1}} $$ $$\gdef \green #1 {\textcolor{b3de69}{#1}} $$ $$\gdef \pink #1 {\textcolor{fccde5}{#1}} $$ $$\gdef \vgrey #1 {\textcolor{d9d9d9}{#1}} $$ $$\gdef \violet #1 {\textcolor{bc80bd}{#1}} $$ $$\gdef \unka #1 {\textcolor{ccebc5}{#1}} $$ $$\gdef \unkb #1 {\textcolor{ffed6f}{#1}} $$ % Vectors $$\gdef \vx {\pink{\vect{x }}} $$ $$\gdef \vy {\blue{\vect{y }}} $$ $$\gdef \vb {\vect{b}} $$ $$\gdef \vz {\orange{\vect{z }}} $$ $$\gdef \vtheta {\vect{\theta }} $$ $$\gdef \vh {\green{\vect{h }}} $$ $$\gdef \vq {\aqua{\vect{q }}} $$ $$\gdef \vk {\yellow{\vect{k }}} $$ $$\gdef \vv {\green{\vect{v }}} $$ $$\gdef \vytilde {\violet{\tilde{\vect{y}}}} $$ $$\gdef \vyhat {\red{\hat{\vect{y}}}} $$ $$\gdef \vycheck {\blue{\check{\vect{y}}}} $$ $$\gdef \vzcheck {\blue{\check{\vect{z}}}} $$ $$\gdef \vztilde {\green{\tilde{\vect{z}}}} $$ $$\gdef \vmu {\green{\vect{\mu}}} $$ $$\gdef \vu {\orange{\vect{u}}} $$ % Matrices $$\gdef \mW {\matr{W}} $$ $$\gdef \mA {\matr{A}} $$ $$\gdef \mX {\pink{\matr{X}}} $$ $$\gdef \mY {\blue{\matr{Y}}} $$ $$\gdef \mQ {\aqua{\matr{Q }}} $$ $$\gdef \mK {\yellow{\matr{K }}} $$ $$\gdef \mV {\lavender{\matr{V }}} $$ $$\gdef \mH {\green{\matr{H }}} $$ % Coloured math $$\gdef \cx {\pink{x}} $$ $$\gdef \ctheta {\orange{\theta}} $$ $$\gdef \cz {\orange{z}} $$ $$\gdef \Enc {\lavender{\text{Enc}}} $$ $$\gdef \Dec {\aqua{\text{Dec}}}$$

반응형

이 글에서는 CNN(Convolutional Neural Networks)을 탐구하고, 높은 수준에서 그것들이 어떻게 두뇌의 구조에서 영감을 얻는지 살펴보기로 하겠습니다.

The Brain

우리는 끊임없이 주변의 세계를 분석합니다. 의식적인 노력 없이, 우리는 우리가 보는 모든 것에 대해 예측을 하고, 그것에 따라 행동합니다. 우리가 어떤 것을 볼 때, 과거에 배운 것을 바탕으로 모든 대상에 라벨을 붙입니다.

여러분은 아마 “저 아이는 의자 위에 서 있는 행복한 소년이다.”라고 생각할 수 있습니다. 아니면 비명을 지른다고 생각할 수 있습니다. 또는 케이크를 망치려는 것으로 볼 수 있습니다.

이것이 우리가 하루 종일 아낌없이 하는 것입니다. 우리는 패턴을 보고, 라벨을 붙이고, 예측하고, 인지합니다. 하지만 어떻게 그렇게 할 수 있을까요? 우리가 보는 모든 것을 어떻게 해석할 수 있을까요?

자연은 이것을 위해 시스템을 만드는 데 5억년이 넘게 걸렸습니다. 즉, 눈과 뇌의 상호작용이 우리 주변의 세상을 바라 볼 수 있는 근본적인 이유입니다.

보는 것에 대한 실제적인 해석은 뇌에서, 1차 시각적 피질에서 일어납니다.

물체를 볼 때, 눈에 있는 빛 수용기는 입력이 처리되고 있는 1차 시각피질로 신호를 보냅니다. 1차 시각피질은 눈이 보는 것을 이해합니다.

이 모든 것이 우리에게 매우 자연스러운 것처럼 보입니다. 우리는 삶에서 보는 모든 대상과 사람들을 인식할 수 있다는 것이 얼마나 특별한지에 대해 거의 생각하지도 않습니다. 뇌의 뉴런과 연결의 매우 복잡한 계층 구조는 물체를 기억하고 라벨을 붙이는 이 과정에 중요한 역할을 합니다.

예를 들어, 우산이 무엇인지 어떻게 배웠는지 생각해 보겠습니다. 부모님이나 가족은 우리에게 직접적인 환경에 있는 물건들의 이름을 말해주었습니다. 우리는 주어진 예를 통해 배웠습니다. 천천히 그러나 확실히 우리는 우리의 환경에서 특정한 것들을 점점 더 자주 인식하기 시작했습니다. 다음에 우리가 그것들을 보았을 때, 우리는 즉시 이 물체의 이름이 무엇인지 알 수 있습니다. 그것들은 바로 우리의 모델이 되는 것입니다.

Convolutional Neural Networks

아이가 사물을 인식하는 법을 배우는 방법과 유사하게, 우리는 입력 내용을 일반화하고 이전에 보지 못했던 이미지에 대한 예측을 하기 전에 수백만 장의 사진을 알고리즘에 보여줄 필요가 있습니다.

컴퓨터는 우리와는 다른 방식으로 ‘보고’ 있습니다. 그들의 세계는 숫자로만 이루어져 있습니다. 모든 이미지는 픽셀로 알려진 2차원 숫자의 배열로 표현됩니다.

하지만 컴퓨터가 다른 방식으로 이미지를 인식한다는 사실로, 우리가 컴퓨터에게 패턴을 인식하도록 훈련시킬 수 없다는 것을 의미하지는 않습니다. 우리는 단지 어떤 이미지가 다른 방식으로 존재하는지 생각하기만 하면 됩니다.

영상에서 물체를 인식하는 방법을 알고리즘에 가르치기 위해, 우리는 특정 유형의 인공 신경망을 사용합니다. ( CNN(Convolutional Neural Network) )

CNN은 뇌에서 영감을 받았습니다다. 포유류가 세상을 시각적으로 인식하는 방법에 대한 새로운 모델을 제안된 것입니다. 고양이와 원숭이 시각 피질에는 직접적인 환경에서 독점적으로 반응하는 뉴런이 포함되어 있다는 것을 알아내었습니다.

논문에서, 각각 다른 방식으로 작용하는 뇌의 시각 뉴런 세포의 두 가지 기본적인 형태, 즉 단순한 세포와 복잡한 세포에 대해 설명했습니다.

복잡한 세포는 망막의 절대 위치가 바뀌어도 일정한 자극에 계속 반응합니다.

시각에서, 단일 감각 신경 세포의 수용 영역은 망막의 특정 영역으로, 그 신경 세포의 발화에 무언가가 영향을 미칩니다. 모든 감각 신경 세포는 유사한 수용장을 가지고 있습니다.

게다가, 계층의 개념은 뇌에서 중요한 역할을 합니다. 정보는 패턴의 순서에 따라 순차적으로 저장됩니다. 뇌의 가장 바깥 층인 신피질은 정보를 계층적으로 저장합니다. 그것은 피질 기둥이나 신피질에 있는 뉴런의 균일하게 조직된 그룹에 저장됩니다.

1980년에 후쿠시마라는 연구자가 계층적 신경망 모델을 제안했습니다. 그는 그것을 신인지론이라고 불렀습니다. 이 모델은 단순하고 복잡한 세포의 개념에서 영감을 얻었습니다. 신인지론은 물체의 형상에 대해 배우면서 패턴을 인식할 수 있다는 것입니다.

이후 1998년 벵기오, 르쿤, 보투, 해프너에 의해 컨볼루션 신경망이 소개되었습니다. 그들의 첫 번째 Convolutional Neural Network는 LeNet-5라고 불렸으며 손으로 쓴 숫자와 숫자를 구분할 수 있었습니다.

Architecture

나머지 부분에서는 CNN의 구조를 살펴보고 파이썬의 구현도 알아보겠습니다.

Convolutional Neural Networks는 일반 Neual Networks와 다른 아키텍처를 가지고 있습니다. 일반 신경망은 일련의 숨겨진 레이어를 통해 입력을 변환합니다. 모든 층은 일련의 뉴런으로 이루어져 있으며, 각 층은 이전의 층에 있는 모든 뉴런과 완전히 연결되어 있습니다. 마지막으로, 예측을 나타내는 마지막 완전 연결 계층, 즉 출력 계층이 있습니다.

컨볼루션 신경망은 약간 다릅니다. 우선 층은 폭, 높이, 깊이 등 3차원으로 구성됩니다. 또한, 한 층의 뉴런은 다음 층의 모든 뉴런과 연결되지 않고 단지 작은 영역에만 연결됩니다. 마지막으로, 최종 산출물은 깊이 차원을 따라 구성된 확률 점수의 단일 벡터로 감소될 것입니다.

CNN은 두 가지 요소로 이루어져 있다.

– 히든 레이어

이 파트에서, 네트워크는 피쳐들이 감지되는 동안 일련의 콘볼루션과 풀링 작업을 수행합니다. 만약 여러분이 얼룩말의 사진을 가지고 있다면, 이 부분은 네트워크가 그것의 줄무늬, 두 귀, 네 개의 다리를 인식하는 부분입니다.

– 분류 부분

여기서 완전히 연결된 층(fully connected layer)은 이러한 추출된 특징들 위에 분류자 역할을 합니다. 그들은 알고리즘이 예측하는 대로 영상에 있는 물체에 대한 확률을 할당합니다.

# before we start building we import the libraries

import numpy as np

from keras.layers import Conv2D, Activation, MaxPool2D, Flatten, Densefrom keras.models import Sequential

Feature extraction

콘볼루션은 CNN의 주요 구성 요소 중 하나입니다. convolution이라는 용어는 세 번째 함수를 생성하기 위해 두 함수의 수학적인 조합을 말합니다. 이것은 두 세트의 정보를 병합합니다.

CNN의 경우 입력 데이터에 대해 필터나 커널을 사용하여 convolution을 수행하여 피쳐 맵을 생서합니다.

우리는 필터를 Input 위로 밀어넣음으로써 합칩니다. 모든 위치에서 매트릭스 곱셈이 수행되고 결과를 Feature Map에 요약합니다.

아래의 애니메이션에서는, convolution 동작을 볼 수 있습니다. 필터(녹색 사각형)가 우리의 입력(파란색 사각형) 위로 가는 것을 볼 수 있으며, 합한 합은 피쳐 맵(빨간색 사각형)으로 들어갑니다.

우리 필터의 영역은 뉴런 세포의 이름을 따서 수용장이라고도 불립니다. 이 필터의 크기는 3×3입니다.

설명을 위해서 2D로 동작을 보여드렸지만, 실제로는 3D로 진행되는 콘볼루션입니다. 각 이미지는 폭, 높이 및 깊이에 대한 디멘션을 가진 3D 매트릭스로 표현됩니다. 깊이는 이미지에 사용되는 색상 채널(RGB) 때문에 차원이 됩니다.

입력에 수많은 난해도를 부여하는데, 각 작업에서 다른 필터를 사용합니다. 이렇게 하면 피쳐 맵이 달라집니다. 결국, 이러한 피쳐 맵을 모두 취하여, 그것들을 콘볼루션 계층의 최종 출력물로 합칩니다.

다른 신경망과 마찬가지로, 출력을 비선형적으로 만들기 위해 활성화 기능을 사용합니다. Convolutional Neural Network의 경우, convolution의 출력은 활성화 기능을 통해 전달됩니다. 이것은 ReLU 활성화 기능일 수도 있습니다.

스트라이드는 매번 콘볼루션 필터가 움직이는 단계의 크기입니다. 보폭 크기는 보통 1이며, 이는 필터가 픽셀을 픽셀 단위로 옮겨가는 것을 의미합니다. 스트라이드 크기를 증가시킴으로써, 필터는 더 큰 간격을 두고 Input 위로 들어가므로 셀 사이에 겹치는 것이 적어집니다.

아래의 애니메이션은 1의 움직임을 보여줍니다.

피쳐 맵의 크기는 항상 Input보다 작기 때문에, 피쳐 맵이 축소되는 것을 막기 위해 무엇인가를 해야 합니다. 여기가 바로 패딩을 사용하는 곳입니다.

0 값 픽셀 층을 추가하여 입력에 0을 둘렀으므로 피쳐 맵이 줄어들지 않습니다. 패딩은 콘볼루션을 수행한 후 공간 크기를 일정하게 유지하는 것 외에도 성능을 향상시키고 커널과 스트라이드 크기가 입력에 맞도록 합니다.

콘볼루션 레이어 후 CNN 레이어 사이에 풀링 레이어를 추가하는 것이 일반적입니다. 풀링의 기능은 네트워크의 매개변수 및 연산을 줄이기 위해 치수성을 지속적으로 감소시킵니다. 이렇게 하면 훈련 시간이 단축되고 오버핏을 제어할 수 있습니다.

풀링의 가장 빈번한 유형은 각 창에서 최대값을 차지하는 최대 풀링입니다. 창 크기를 미리 지정해야 합니다. 이는 중요한 정보를 유지하는 동시에 피쳐 맵 크기를 감소시킵니다.

따라서 CNN을 사용할 때 우리가 결정해야 할 4가지 중요한 하이퍼 파라미터는 다음과 같습니다.

– 커널 사이즈

– 필터 수(즉, 사용할 필터 수)

– 스트라이드(필터의 계단 크기)

– 패딩

# Images fed into this model are 512 x 512 pixels with 3 channels

img_shape = ( 28 , 28 , 1 )

# Set up the model

model = Sequential ()

# Add convolutional layer with 3, 3 by 3 filters and a stride size of 1 # Set padding so that input size equals output size

model.add ( Conv2D ( 6 , 2 , input_shape = img_shape ))

# Add relu activation to the layer

model.add ( Activation ( ‘ relu ‘ ))

#Pooling

model.add ( MaxPool2D ( 2 ))

연결층을 시각화하는 좋은 방법은 아래와 같습니다. 잠깐 보고 무슨 일이 일어나고 있는지 정말로 이해하면 좋을 것 같습니다.

Classification

연결 층과 풀링 레이어 후, Classification 부분은 몇 개의 완전히 연결된 레이어(fully connected layer)로 구성되어 있습니다. 그러나 완전히 연결된 이러한 계층은 1차원 데이터만 수용할 수 있습니다. 3D 데이터를 1D로 변환하기 위해서, 파이썬에서 flatten 함수를 사용합니다. 이것은 본질적으로 3D 볼륨을 1D 벡터로 변환합니다.

Convolutional NN의 마지막 계층은 완전히 연결된 계층입니다. 완전히 연결된 계층의 뉴런은 이전 계층을 모두 활성화하여 완전히 연결됩니다. 이 부분은 원칙적으로 일반 신경망과 동일합니다.

#Fully connected layers

# Use Flatten to convert 3D data to 1Dmodel.add(Flatten())

# Add dense layer with 10 neuronsmodel.add(Dense(10))

# we use the softmax activation function for our last layermodel.add(Activation(‘softmax’))

# give an overview of our model

model.summary

# _________________________________________________________________ # Layer (type) Output Shape Param # ================================================================= # conv2d_1 (Conv2D) (None, 27, 27, 6) 30 # _________________________________________________________________ # activation_1 (Activation) (None, 27, 27, 6) 0 # _________________________________________________________________ # max_pooling2d_1 (MaxPooling2 (None, 13, 13, 6) 0 # _________________________________________________________________ # flatten_1 (Flatten) (None, 1014) 0 # _________________________________________________________________ # dense_1 (Dense) (None, 10) 10150 # _________________________________________________________________ # activation_2 (Activation) (None, 10) 0 # ================================================================= # Total params: 10,180Trainable params: 10,180Non-trainable params: 0 # __________________________________________________________________

Training

CNN을 훈련시키는 것은 백프로파제이션이나 구배계(gradient down)를 이용하는 일반 신경망과 같은 방식으로 동작합니다. 그러나, 여기에서는 조금 더 수학적으로 복잡합니다. 그 이유는 복잡한 작업 때문입니다.

“”” Before the training process, we have to put together a learning process in a particular form. It consists of 3 elements: an optimiser, a loss function and a metric. “””

model.compile ( loss = ‘ sparse_categorical_crossentropy ‘ , optimizer = ‘ adam ‘ , metrics =[ ‘ acc ‘ ])

# dataset with handwritten digits to train the model onfrom keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data ()

x_train = np.expand_dims ( x_train, – 1 )

x_test = np.expand_dims ( x_test, – 1 )

# Train the model, iterating on the data in batches of 32 samples# for 10 epochs

model.fit ( x_train, y_train, batch_size = 32 , epochs = 10 , validation_data = (x_test,y_test)

# Training…

Summary

요약하면 CNN은 특히 이미지 분류와 인식에 유용합니다. 두 개의 주요 부분을 가지고 있습니다. 바로 피쳐 추출 부분과 분류 부분입니다.

CNN의 주요 특수 기법은 convolution인데, 여기서 필터가 Input 위로 들어가 입력값 + 피쳐 맵의 필터 값을 합칩니다. 결국, 목표는 CNN에 새로운 이미지를 주입하여, CNN이 생각하는 물체가 보이는지 또는 텍스트로 이미지를 묘사할 수 있도록 하는 것입니다.

반응형

키워드에 대한 정보 인공 지능 cnn

다음은 Bing에서 인공 지능 cnn 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

See also  고추 청 만들기 | 나만 알고있는 고추청 비법!! 김치 담굴때 고추청으로 맛 내세요. 고추청 담그는 법 4313 투표 이 답변
See also  Париоваријална циста - Parovarian cist | циста

See also  스티커 제거 Wd40 | 다이소의 다목적 방청윤활제.스티커제거제 3종 사용후기 /Wd-40 추천합니다 상위 262개 베스트 답변

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 딥러닝 CNN, 개념만 이해하기

  • 딥러닝
  • CNN
  • 컨볼루션 신경망
  • 신경망
  • convolution
  • convolutional neural network
  • 합성곱 신경망
  • 합성곱
  • 딥러닝 CNN
  • 이미지 인식
  • 인공지능
  • 사진 인식
  • 얼굴 인식
  • 이미지 분류

딥러닝 #CNN, #개념만 #이해하기


YouTube에서 인공 지능 cnn 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 딥러닝 CNN, 개념만 이해하기 | 인공 지능 cnn, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *