Data Science (21) 썸네일형 리스트형 [밑바닥부터 시작하는 딥러닝 1] Ch 3. 신경망 이번 포스팅에서는 "신경망"에 대해서 다뤄보도록 하겠다. 앞 장에서 공부한 퍼셉트론은 매개변수(가중치와 편향) 조정을 사람이 수동으로 해주어야 한다는 단점이 있다. 이러한 단점을 해결해 줄 수 있는 것이 바로 신경망이다. 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 있다!! 신경망을 그림으로 나타내면 다음과 같으며 크게 입력층, 은닉층, 출력층 이렇게 3개로 구분된다. 여기서 "활성화 함수"라는 개념이 등장한다. 활성화 함수란 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 수행한다. (** 앞서 2장에서 본 퍼셉트론은 활성화 함수로 "계단 함수"를 사용한다) 신경망에서 자주 이용되는 활성화 함수 (모두 비선형) 시그모이드 함수 ReLU 함수 일반적으로 이용되는 출.. [밑바닥부터 시작하는 딥러닝 1] Ch 2. 퍼셉트론 이번 포스팅에서는 신경망의 기원이 되는 알고리즘인 "퍼셉트론"에 대한 내용을 다루도록 하겠다. 퍼셉트론 다수의 신호를 입력으로 받아서 하나의 신호를 출력함 뉴런에서 보낸 신호의 총합이 정해진 한계(임계값)를 넘어설 때만 1을 출력함(이 때 뉴런이 활성화된다고 함) AND 게이트 입력이 둘이고 출력은 하나인 논리 회로임 두 개의 입력이 모두 1일 때만 1을 출력함 NAND 게이트 Not AND를 의미함 즉, AND 게이트의 출력을 뒤집은 것임 마찬가지로 입력이 둘이고 출력은 하나인 논리 회로임 두 개의 입력이 모두 1인 경우에만 0을 출력하고, 나머지 경우는 모두 0을 출력함 OR 게이트 마찬가지로 입력이 둘이고 출력은 하나인 논리 회로임 입력 신호 중, 하나 이상이 1이면 출력이 1이 됨 여기서 중요한 .. [밑바닥부터 시작하는 딥러닝 1] Ch 1. 헬로 파이썬 1장은 파이썬의 기초적인 내용들에 대한 설명이 주를 이룬다. 필자는 파이썬 기초에 대한 지식이 있는 상태에서 교재를 접했기 때문에, 1장은 그냥 가벼운 마음으로(?) 읽어넘겼다. 다만, 1장에서도 중요한 내용들이 있기에, 특별히 주의깊게 살펴봐야 할 부분들에 대해서 정리해보도록 하겠다. 클래스 개발자가 직접 클래스를 정의하면 독자적인 자료형을 만들 수 있음 또한 해당 클래스만의 전용 함수(메서드)와 속성을 정의할 수 도 있음 클래스 생성은 딥러닝 모델 생성 시에 필수적이므로, 개념을 잘 익혀두어야 함 클래스 정의에는 __init__이라는 특별한 메서드가 있으며, 클래스를 초기화하는 방법을 정의한다. 이 초기화용 메서드를 생성자라고 하며, 클래스의 인스턴스가 만들어질 때 한 번만 불린다. 또한 파이썬에서는.. [핸즈온 머신러닝 2/E] 9장. 비지도 학습 드디어 "핸즈온 머신러닝 2/E" 교재를 Part 1(머신러닝 파트)까지 완독하였다!! 자, 그럼 이제 Part 1의 마지막 챕터인 "9장. 비지도 학습"에 대해서 정리해보도록 하겠다. ▶ 비지도 학습이란? 우리가 사용할 수 있는 대부분의 데이터는 레이블이 없다. 즉, 정답이 없는 데이터이기 때문에 지도 학습을 사용할 수가 없다. 이러한 경우에 사용하는 방법이 바로 "비지도 학습"이다. 대표적인 비지도 학습으로는 Clustering(군집 분석)이 있다. ▶ 군집 분석(Clustering) 앞서 말했듯이, 군집 분석은 대표적인 비지도 학습이다. 주의할 점은 "분류"와 "군집"을 헷갈리면 안 된다는 것이다. 아래의 그림을 참고하면, 분류와 군집을 구분할 수 있을 것이라고 생각한다. 군집 분석은 다방면에서 활.. [핸즈온 머신러닝 2/E] 8장. 차원 축소 우리가 마주하는 머신러닝 문제에서 훈련 샘플이 무수히 많은 특성(feature)을 갖고 있는 경우가 존재한다. 이렇게 많은 특성들이 존재하게 되면, 훈련 속도가 느려질 뿐만 아니라 좋은 솔루션을 찾기가 힘들다. 이번 챕터에서는 이러한 문제를 해결할 수 있는 방법인 "차원 축소"에 대해서 정리해보도록 하겠다. 자, 그럼 시작해볼까? 차원을 축소시키면 일부 정보가 유실된다. 따라서 훈련 속도가 빨라질 수는 있지만, 정보 손실의 문제가 발생할 수도 있다. 또한 작업 파이프라인이 더 복잡해지고 유지 관리가 어려워진다. 차원 수를 둘 또는 셋으로 줄이면 고차원 훈련 세트를 하나의 압축된 그래프로 표현할 수 있고, 군집과 같은 시각적인 패턴 또한 감지하기 쉬워서 중요한 insight를 도출해내는 경우가 많다. ▶ .. [핸즈온 머신러닝 2/E] 7장. 앙상블 학습과 랜덤 포레스트 이번 장에서는 앙상블 학습에 대해서 정리해보도록 하겠다. 그 중에서도 특히 많이 사용되는 랜덤 포레스트에 대해서도 다뤄보겠다. ▶ 앙상블 학습이란? 여러 개의 분류기를 생성하고, 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법이다. 각 분류기가 weak learner(약한 학습기)일지라도, 충분하게 많고 다양하다면 앙상블은 strong learner(강한 학습기)가 될 수 있다. 위처럼 말할 수 있는 근거가 바로 그 유명한 "대수의 법칙"이다. 앙상블 방법은 모든 분류기가 완벽하게 독립적이고, 오차에 상관관계가 없어야 최고의 성능을 발휘한다. 따라서 다양한 분류기를 얻는 한 가지 방법은 각기 다른 알고리즘으로 학습시키는 것이다. 대표적인 앙상블 모델로는 랜덤 포레스트(결정 트리의 앙상블)가.. [핸즈온 머신러닝 2/E] 6장. 결정 트리 이번 포스팅은 Decision Tree에 대해서 진행하도록 하겠다. 자, 그럼 오늘도 시작해보겠다!! ▶ 결정 트리 학습과 시각화 사이킷런의 DecisionTreeClassifier(분류)와 DecisionTreeRegressor(회귀)를 사용한다. export_graphviz( ) 함수를 사용해서 결정 트리를 시각화할 수 있다. ▶ 결정 트리 해석 위와 같은 결정 트리 모델 결과가 있다고 가정하고 설명을 해보도록 하겠다. 루트 노드(Root Node): 깊이가 0인 맨 꼭대기의 노드 리프 노드(Leaf Node): 자식 노드를 가지지 않는 노드 samples 속성: 얼마나 많은 훈련 샘풀이 적용되었는지 value 속성: 노드에서 각 클래스에 얼마나 많은 훈련 샘플이 있는지 Gini 속성: 불순도를 측정.. [핸즈온 머신러닝 2/E] 5장. 서포트 벡터 머신 이번 포스팅에서는 서포트 벡터 머신(SVM)을 다뤄보겠다. 머신러닝 모델들 중, 가장 많이 사용하고 성능이 뛰어난 모델이므로 개념을 정확하게 이해해야 할 것 같다. ▶ 선형 SVM 분류 SVM 분류기(또는 Large Margin Classification)는 클래스 사이에 폭이 가장 넓은 도로를 찾는 것이라고 생각하면 이해하기 쉽다. 마진(Margin)이란? 두 데이터 군과 결정 경계와 떨어져 있는 정도 우리의 목표는 이 margin을 최대화하는 결정 경계(선 또는 면)를 찾아내는 것!! 위 그림을 보면 알 수 있듯이, 도로 바깥쪽에 훈련 샘플을 추가해도 결정 경계에는 영향을 미치지 않는다. 또한 결정 경계는 도로 경계에 위치한 샘플. 즉, 서포트 벡터에 의해 결정된다. 서포트 벡터란? 두 클래스 사이의.. 이전 1 2 3 다음