일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 역전파
- Image Classification
- memoization
- 분할정복
- 힙
- 인공지능
- 힙구조
- 스티커
- 병합정렬
- 자료구조
- 오차역전파법
- 메모이제이션
- AIFFEL
- 밑시딥
- 아직
- 머신러닝
- 피보나치수열
- 피보나치
- 인공지는
- 어렵다
- 딥러닝
- 트리
- 알고리즘
- 우선순위큐
- 퍼셉트론
- ssac
- 다이나믹프로그래밍
- tree
- dp
- Today
- Total
목록전체 글 (20)
딥러닝 for Deep Learning

8. 1 더 깊게 8.1.1 더 깊은 신경망으로 3 x 3의 작은 필터를 사용한 합성곱 계층 활성화 함수는 ReLU 완전연결 계층 뒤에 드롭아웃 계층 사용 Adam을 사용해 최적화 가중치 초깃값을 'He의 초깃값' 채널 수는 앞 계층에서부터 순서대로 16, 16, 32, 32, 64, 64로 늘어남 위 신경망으로 MNIST 숫자 데이터를 학습할 경우, 정확도는 99.38%! 이미지 인식을 잘못한 경우를 살펴보면, 사람도 구분하기 어렵다. 8.1.2 정확도를 더 높이려면 위 이미지를 살펴보면, 상위권은 대부분 CNN을 기초로 한 기법들이다. 다만, MNIST 데이터 분류는 단순한 작업이기 때문에 그다지 깊은 신경망이 필요하지 않다. 정확도를 더 높이려면?? 앙상블 학습, 학습률 감소, 데이터 확장 등이 도..

역전파 덧셈 노드의 역전파 z = x + y의 미분은 아래의 식과 같이 계산할 수 있다. 두 식의 결과는 모두 1이다. 이를 계산 그래프로 표현하면, 역전파 때는 상류에서 전해진 미분에 1을 곱해 하류로 보낸다. (오른쪽에서 왼쪽으로) 즉, 덧셈 노드를 만나면 입력값을 그대로 다음 노드로 보낸다. (gradient distributor) 예를 들어, 상류에서 1.3이란 값이 흘러오면, 그대로 내려보낸다. 곱셈 노드의 역전파 z = xy의 미분은 아래의 식과 같이 계산할 수 있다. 그럼 계산 그래프로 함 그려보자. (내가 그리는건 아님) 위 그래프에서 보이는 것처럼 곱셈 노드 역전파는 상류의 값에 순전파 때의 입력 신호들을 '서로 바꾼 값'을 곱해서 하류로 내려보낸다. (gradient switcher) ..

[퍼셉트론] 퍼셉트론: 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 알고리즘. 신경망(딥러닝)의 기원이 되는 알고리즘. 퍼셉트론이란? 퍼셉트론은 다수의 신호를 받아 하나의 신호를 출력. 신호: 전류나 강물처럼 흐름이 있는 것 흐른다: 1 안 흐른다: 0 x1, x2: 입력 신호 y: 출력 신호 w1, w2: 가중치(weight) 위 그림 중, 원을 뉴런 혹은 노드라고 하며, 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다. 가중치와 곱해진 입력 신호가 정해진 한계(임계값(θ) )를 넘어설 때만 1을 출력한다. 수식은 아래와 같다. 단순한 논리 회로 AND 게이트 입력이 둘이고 출력은 하나인 게이트 두 입력이 모두 1일 때만 1을 출력, 아니면 0 위 조건을 만족하..

[다이나믹 프로그래밍] 정의: 다이나믹 프로그래밍(Dynamic Programming)이란, 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. 우선, 다이나믹 프로그래밍으로 해결할 수 있는 예시인 피보나치수열 문제를 구하는 과정을 살펴보자. 어떤 수열의 항이 앞의 두 항의 합과 같은 수열을 피보나치 수열이라 하며 그림으로 나타내면 아래와 같다. n번째 피보나치 수 = (n-1)번째 피보나치 수 + (n-2)번째 피보나치 수 첫 번째와 두 번째 피보나치 수 = 1 이러한 피보나치 수열 문제를 일반적으로 프로그래밍 코드로 작성하면 문제가 발생하게 되는데, f(n) 함수에서 n이 커지면 커질수록 수행 시간이 기하급수적으로 늘어나게 된다. 빅오 표기법을 사용하..

[분할 정복] 정의: 분할 정복은 다중 분기 재귀를 기반으로 하는 알고리즘 디자인 패러다임을 말한다. 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘이다. 위 그림에선 상단에서 '분할'하고 중앙에서 '정복'을 하고 하단에서 '조합'하는 분할 정복의 과정을 나타낸다. 각 과정에 대한 설명은 아래와 같다. 분할: 문제를 동일한 유형의 하위 문제로 나눈다. 정복: 가장 작은 단위의 하위 문제를 해결하여 정복한다. 조합: 하위 문제에 대한 결과를 원래 문제에 대한 결과로 조합한다. 조금 더 자세한 과정을 살펴보자. 위의 파란 점을 기준으로 데이터를 좌우로 분할한다. 분할 작업이 모두 끝나고 나면 정복을 수행하며, 데이터를 조합할 때는 데이터를 크기 순으로 정렬하면서 진행한다..

[힙 구조] 정의: 힙은 힙의 특성(최소 힙(Min Heap)에서는 부모가 항상 자식보다 작거나 같다)을 만족하는 거의 완전한 트리(Almost Complete Tree)인 특수한 트리 기반의 자료구조다. 지난번의 트리 구조에 이어서 힙(Heap) 구조에 대해서 알아보도록 하자. 힙은 기본적으로 완전이진트리의 형상을 가지고 있다. 그렇다면 힙과 트리의 차이점은 무엇일까? 들어가기 전 우선 힙은 우선순위 큐를 위하여 만들어진 구조이다. 우선순위 큐는 우선순위를 가지고 있는 원소로 이루어진 평범한 큐나 스택과 비슷한 축약 자료형이다. 우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능한데, 이 중에서 힙으로 구현하는 것이 가장 효율적이라고 한다. 힙(Heap) 힙(Heap)은 최댓값 및 최솟값을 찾아내는 ..

[트리 구조] 정의: 트리는 계층형 트리 구조를 시뮬레이션하는 추상 자료형( ADT)으로, 루트 값과 부모-자식 관계의 서브트리로 구성되며, 서로 연결된 노드의 집합이다. 후기 알 것 같으면서도 아직 잘 모르겠다?! 조금만 더 살펴보자. 트리(Tree)는 하나의 뿌리에서 위로 뻗어 나가는 형상처럼 생겨서 '트리(나무)'라는 명칭이 붙었다. 트리 구조를 표현할 때는 나무의 형상과는 반대 방향으로 표현한다. 가계도(조직도)의 형상과도 비슷하다. 트리 구조는 아래 그림의 형상을 가진다. 트리의 대표적인 특징 트리는 노드로 이루어진 자료 구조. 트리는 하나의 루트 노드를 갖는다. 루트 노드는 0개 이상의 자식 노드를 갖고 있다. 그 자식 노드 또한 0개 이상의 자식 노드를 갖고, 이는 반복적으로 정의된다. 트리..