Machine Learning (23) 썸네일형 리스트형 [Deep Learning from Scratch] 6장. 학습 관련 기술들 1. 가중치 값의 갱신 신경망 학습의 목적은 손실 함수(loss function)의 값을 가능한 낮추는 것으로 이는 곧 신경망의 매개변수, 즉 가중치의 최적값을 찾는 문제로 귀결된다. 이러한 문제를 최적화(Optimization)라고 한다. 일반적으로 인공 신경망의 매개변수 공간은 매우 넓고 복잡해서 최적의 해결책을 찾는 것은 결코 쉬운 작업이 아니다. A. 경사 하강법(Gradient Descent) 가장 널리 사용되는 가중치 값의 최적화 솔루션 중 하나는 경사 하강법(Gradient Descent)이라는 기법이다. 경사 하강법은 각 입력값이 순전파된 이후 실제 값(Ground Truth)과 일치시키기 위해 계산된 매개변수(가중치)의 미분 값을 이용해 기울어진 방향으로 값을 갱신하는 일을 계속 반복해 .. [Deep Learning from Scratch] 5장. 오차역전파 이 글은 사이토 고키의 'Deep Learning from Scratch' 중 5단원인 오차역전파법를 요약한 글입니다. 이 글에선 오차역전파에 대해 최대한 쉽게 요약하고 필요하다면 저의 부가적인 코멘트도 덧붙여 설명할 예정입니다. 다만 이 글을 읽으시기 전 신경망의 학습이 어떻게 이루어지는지(가중치, 편미분, 배치 등)를 이해하셔야 편하게 글을 읽으실 수 있습니다. 0. 오차역전파? 저는 예전부터 어떤 개념을 배울 때 그 용어의 뜻을 파헤치는 게 이해에 도움이 됐습니다. 그렇기 때문에 용어에 의미가 담겨있는 과학, 수학을 좋아했고, 영어 단어처럼 의미가 없는 것을 외우는 것은 상당히 힘들어했던 기억이 있습니다. 사설은 여기서 그만 접고, 오차역전파라의 의미를 파헤쳐보고자 합니다. 오차역전파라는 단어는 오.. [Deep Learning from Scratch] 4장. 신경망 학습 우리는 3장에서 신경망이 무엇인지에 대해 알아보았습니다. 이번 챕터에서는 만든 신경망을 어떻게 학습하는지를 알아볼 것입니다. 신경망은 데이터에서 답을 찾고 패턴을 발견하면서 학습해나갑니다. 이것을 흔히 말하는 기계학습이라고 하죠. 사람은 데이터를 보고 직관적으로 정보를 추출해는 반면 컴퓨터는 그렇게 할 수가 없습니다. 손글씨를 보고 이 글씨가 무엇인지 판단할 때 우리가 어떻게 판단을 하나요? 여기서 이 숫자를 판단할 때 머릿속으로 직선과 곡선의 교점들을 보면서 판단하는 사람은 없을 것입니다. 사람도 모르는데 이것을 파악하는 알고리즘을 구현하기란 정말 어려운 일입니다. 그래서 우리는 알고리즘 자체를 만드는 것이 아니라 충분히 많은 데이터를 통해 알고리즘을 스스로 학습할 수 있는 모델을 만들고자 하였고 이것.. [Deep Learning from Scratch] 3장. 신경망 - 구현 1. 계단 함수 def step_function(x): # x : np array y = x > 0 return y.astype(np.int) 2. 시그모이드 함수 def sigmoid(x): # x : np array return 1 / (1 + np.exp(-x)) 3. ReLU 함수 def relu(x): # x : np array return np.maximum(0, x) 4. 항등 함수 def identity_function(x): # x : np array return x 5. 소프트맥스 함수 def softmax(x): # x : np array c = np.max(a) # to prevent overflow exp_a = np.exp(a - c) sum_exp_a = np.sum(exp_a.. [Deep Learning from Scratch] 3장. 신경망 - 이론 신경망은 퍼셉트론과 별반 다를 것이 없습니다. 이미 설정된 가중치와 편향 값만 있다면 입력 값을 받아 결과에 맞는 출력을 얻을 수 있습니다. 가중치와 편향 값은 아래의 식을 계산할 때 이용됩니다. 위 식은 다음과 같이 나타낼 수도 있습니다. 이 때 h(x)는 활성화 함수(activation function)라 합니다. 활성화 함수는 뉴런의 입력신호의 총합을 통해 해당 뉴런을 활성화 시킬지 말지를 결정하는 함수입니다. 뉴런이 활성화 되었다는 것은 출력신호가 1이라는 뜻으로 해석할 수 있습니다. 활성화 함수 본 포스팅에서는 세가지의 활성화 함수에 대해 소개합니다. 바로 시그모이드 함수(sigmoid function), 계단 함수, ReLU(Rectified Linear Unit)입니다. 시그모이드 함수 시그.. [Deep Learning from Scratch] 2장. 퍼셉트론 퍼셉트론알고리즘은 프랑크 로젠블라트(Frank Rosenblatt)에 의해 1957년에 고안된 것으로 신경망(딥러닝)의 기원이 되는 알고리즘입니다. 퍼셉트론은 여러 입력을 받아 하나의 신호를 출력합니다. 이 작업을 수행하기 위해 한 개 이상의 층으로 이루어진 뉴런(노드)을 통해 신호를 전달합니다. 한 뉴런의 출력신호가 그 다음 층 뉴런의 입력신호로 사용되는 형태이며 이 때 고유한 가중치(weigt)가 곱해진 상태로 입력됩니다. 그리고 뉴런에 입력된 신호의 총합이 정해진 임계값을 넘길 때 그 뉴런의 출력신호는 1이 되고 그렇지 않을 경우 0을 출력합니다. 이것을 식으로 나타내보면 다음과 같습니다. 위 식에서 θ를 -b로 치환하면, 이 때 b를 편향(bias)이라고 합니다. 위의 식과 같은 퍼셉트론으로 AN.. 딥러닝을 통한 Image Segmentation 입문!! Keras를 사용해 딥러닝으로 이미지를 분석해보자! A Beginner's guide to Deep Learning based Semantic Segmentation using Keras 원문 링크 : https://divamgupta.com/image-segmentation/2019/06/06/deep-learning-semantic-segmentation-keras.html 참조 : https://bskyvision.com/491 주의 사항 : 원문의 semantic segmentation, semantic image segmentation 등의 단어들을 통틀어 image segmentation(이미지 분석)로 번역하였습니다. 픽셀 기반의 이미지 분석(Image Segmentation) 문제는 컴퓨터.. Soft Voting 과 Hard Voting Ensemble 에 대해 공부하셨다면 Soft Voting 과 Hard Voting에 대해서 알고 있으시겠지만, 대부분 개념은 대충 넘기고 모듈을 사용하기 때문에 정확한 개념을 헷갈리는 경우가 있습니다. 저도 자료들을 찾아보면서 한동안 혼란을 겪었는데, 가장 큰 이유는 적지 않은 사이트들이 Soft Voting 과 Weighted Voting을 섞어 쓰기 때문이었습니다. 한번 확실하게 알아 봅시다. 참고로 본 포스트의 모든 내용은 Classification 문제에 대한 것이라고 생각하시면 됩니다. voting이 뭔지 잘 모르시겠으면 이 포스트 를 참고해 주세요 Hard Voting Hard Voting은 Majority Voting이라고도 하며, 각각의 모델들이 은 각각의 모델들이 결과를 예측하면 단순하.. 이전 1 2 3 다음