본문 바로가기

필기 노트30

[딥러닝 기초] 오차역전법 (back-propagation) 안녕하세요 :) 오늘은 경사하강법의 문제를 해결하기 위한 오차역전법 (back-propagation)에 대해서 다뤄보겠습니다. 오차역전법 (back-propagation) 경사하강법 오차역전법에 대해 이야기해보기 전에 경사하강법을 복습해보겠습니다. 경사하강법을 오차함수에 적용시켜보겠습니다. 간단한 다변수 함수의 최소값을 찾는 경우, 경사하강법은 효율적으로 사용될 수 있습니다. 하지만, 많은 파라미터가 포함되는 경우, 경사하강법으로 최소값을 계산하기 어려워집니다. 경사하강법을 위와 같이 적용하는 경우, 다수의 기울기 성분을 계산하는 비용이 커지게 됩니다. 여러 항을 한꺼번에 미분해서 계산하려면 너무 많은 비용이 들기 때문에 효율적이지 못합니다. 이러한 문제를 해경하기 위해서 오차역번법(back-propag.. 2020. 7. 10.
[Python 기초] 기본 자료형 : 불(bool) 이번에는 파이썬의 기본 자료형 중, 불(bool)에 대해 알아보겠습니다. 불 (bool) 불 자료형은 참(True) 또는 거짓(False)을 나타내는 자료형입니다. 불 자료형은 조건문의 반환값으로 사용됩니다. >>> 2 == 1 # False >>> 1 == 1 # True >>> 2 >> 2 > 1 # True 자료형에도 참/거짓이 있습니다. 문자열, 리스트, 튜플 등의 자료형은 비어있으면 거짓으로 인식합니다. 참(True) 거짓(False) "Fine thank you" "" [1, 2, 3] [] (1, 2, 3) () {"key":"value"} {} 1 0 None bool() 함수를 통해서 해당 값의 참/거짓을 알 수 있습니다. >>> bool("Hello world").. 2020. 7. 10.
[Python 기초] 기본 자료형 : 집합 (set) 이번에는 파이썬의 기본 자료형 중, 집합(set)에 대해 알아보겠습니다. 집합(set) 집합 자료형은 집합과 관련된 연산을 처리하기 위해 파이썬 2.3부터 지원하기 시작한 기본 자료형입니다. 집합 자료형은 set 키워드를 사용해서 생성이 가능합니다. >>> s1 = set([1, 2, 3]) # {1, 2, 3} >>> s2 = set('Hello') # {'H', 'e', 'l', 'o'} >>> s3 = set() 아무런 파라미터 없이 set()만으로 빈 집합을 생성할 수 있습니다. 집합 자료형의 특징은 다음과 같습니다. 원소의 중복을 허용하지 않습니다. 원소의 순서가 없습니다. (unordered) 순서가 없다는 두번째 특징 때문에 집합 자료형에서는 인덱스로 값을 접근할 수 없습니다. 인덱스로 접근.. 2020. 7. 10.
[딥러닝 기초] 신경망과 학습 안녕하세요 :) 오늘은 여태까지 배운 지식들을 기반으로 신경망과 신경망 학습에 대한 이야기를 해볼까 합니다! 1. 신경망 신경망의 파라미터와 변수 파라미터(parameter)는 신경망의 수학적 모델을 정하는데 필요한 상수입니다. 이전에 대분 가중치(weight)와 편향(bias)을 파라미터라고 부릅니다. 파라미터를 제외하고, 신경망의 입력으로 주어지는 데이터 값에 따라서 변하는 변수가 필요합니다. 그러므로, 신경망에서는 데이터를 저장하는 변수 모델을 결정하는 파라미터 로 구성됩니다. 이해하기 쉽게 단순회귀분석을 예시로 들어보겠습니다. y = px + q 라는 회귀방정식을 살펴보면, 절편(q)과 회귀계수(p)는 파라미터에 해당하고, 독립변수(x), 종속변수(y)는 변수에 해당합니다. 파라미터와 변수의 이름.. 2020. 7. 9.
[딥러닝 기초] 경사하강법과 회귀분석 안녕하세요 :) 오늘은 딥러닝의 기초 개념 중 하나인 경사하강법과 회귀분석에 대해서 간단하게 다뤄보겠습니다. 1. 경사하강법 (Gradient descent) 신경망에서는 z = f(x, y)를 최소화하는 x, y 값을 구하는 것이 목표입니다. 이러한 목표를 달성하기 위한 방법 중 하나가 바로 경사하강법(Gradient descent)입니다. 경사하강법은 그래프 상의 점을 조금씩 움직여서 함수의 최소 값을 구하는 방식입니다. 점을 조금씩 움직일 때, 가장 가파른 방향으로 이동하게 됩니다. 이러한 방법을 수치해석에서는 최급하강법(method of steepest descent)라고 합니다. 앞서 배운 내적을 이용한 근사식 표현으로 돌아가 보겠습니다. z = f(x, y)에서 x, y를 △x, △y 만큼 변.. 2020. 7. 9.
[딥러닝 기초] 딥러닝 수학 - 2 : 행렬, 미분 안녕하세요 :) 오늘은 저번 게시물(딥러닝 수학-1)에 이어서 조금 더 구체적인 수학적인 내용을 다뤄보겠습니다. 크게 형렬, 미분에 대해서 배워보겠습니다. 1. 행렬 (matrix) 행렬은 수와 식을 사각 형태의 배열로 나열한 것을 의미합니다. 거로 줄을 행, 세로 줄을 열이라고 부릅니다. 이때, 행의 수와 열의 수가 같은 경우 정사각 행렬(square matrix)라고 부릅니다. 또한, 행렬 중, 하나의 열로 구성된 행렬을 열 벡터, 하나의 행으로 구성된 행렬을 행 벡터라고 부릅니다. 행렬의 원소 중, i행 j열에 위치한 성분은 aij로 표시합니다. 그중, i = j 인 경우 aij 가 1이고, 나머지의 경우 모두 0인 경우를 단위행렬(E)라고 합니다. 행렬의 연산 행렬의 상등 두 행렬에서 대응하는 각.. 2020. 7. 6.
[딥러닝 기초] 딥러닝 수학 - 1 : 함수, 수열, 벡터 안녕하세요 :) 오늘은 구체적인 딥러닝 이야기를 하기에 앞서, 딥러닝을 이해하는데 필요한 수학적인 내용을 다뤄볼까 합니다. 크게 함수, 수열, 벡터에 대한 내용을 다뤄보겠습니다. 1. 함수 1차 함수 가장 기본적인 1차 함수에 대해서 알아보겠습니다. 일차 함수는 기본적으로 다음과 같은 형식으로 구성될 수 있습니다. 위 식은 독립 변수가 1개인 가장 단순한 형태의 1차 함수입니다. 다음과 같이 2개의 독립 변수로 구성된 1차 함수를 생성할 수도 있습니다. 이 때, y는 x1, x2와 "1차 함수 관계"라고 표현합니다. ※ 독립 변수와 종속 변수 x가 주어졌을 때, y의 값이 정해진다면, x는 독립변수, y는 종속 변수라고 할 수 있습니다. 앞서 배운 신경망의 가중입력은 1차 함수 관계로 표현할 수 있습니다.. 2020. 7. 1.
[딥러닝 기초] 신경망과 딥러닝 개요 안녕하세요 :) 오늘은 신경망 기반의 딥러닝에 대한 기본적인 이야기를 해보려고 합니다. 주어진 데이터를 스스로 학습이 가능하다는 점이 신경망 기반의 딥러닝의 장점이라고 할 수 있는데요. 신경망을 설명하려면 뉴런에 대해서 먼저 간단하게 이해해야 합니다. 뉴런 (neuron) 뉴런의 기본적인 특징을 먼저 살펴보겠습니다. 다수의 뉴런들로 네트워크를 구성합니다. 입력된 값의 합이 임계값을 넘지 않으면 해당 뉴런은 반응하지 않습니다. 입력된 값의 합이 임계값을 넘으면, 다른 뉴런에 일정 강도의 신호를 전달합니다. 여러 뉴런에서 전달되는 신호의 합은 가중치가 각각 다릅니다. 쉽게 말하면, 서로 다른 뉴런으로부터 신호를 받아 가중치에 따라 입력된 값이 임계값을 넘는 경우 연결된 또 다른 뉴런들에게 전달되는 구조입니다.. 2020. 6. 29.
[Python 기초] 기본 자료형 : 딕셔너리 (dictionary) 이번에는 파이썬의 기본 자료형 중 딕셔너리(dictionary)에 대해서 알아보겠습니다! :) 딕셔너리 (dictionary) 딕셔너리는 대응관계를 나타내기 위해 사용합니다. 그러므로, Key-Valuye를 한 쌍으로 저장하게 됩니다. 딕셔너리는 연관배열(associative array) 또는 해시(Hash)라고도 불립니다. 딕셔너리는 앞서 배운 리스트(list)와 튜플(tuple) 처럼 순차적으로 요소 값을 접근하는 것이 아니라, key 값을 통해서 value 값에 접근하는 방식으로 구성됩니다. 딕셔너리 생성 >>> d = {"key1" : "value1", "key2" : "value2"} 딕셔너리를 생성할 때 주의하셔야 하는 점은, key 값에는 변하지 않는 값을 사용해야 한다는 것입니다. 그러므로.. 2020. 6. 29.