본문 바로가기
반응형

DATA Science50

구글 머신러닝 온라인 교육과정 https://developers.google.com/machine-learning/crash-course?hl=ko 머신러닝 단기집중과정 | Google Developers 실용적인 단기집중식 머신러닝 기초 입문 과정(20시간)입니다. 텐서플로우 실습도 함께 제공됩니다. developers.google.com 공부하다가 이상한게 나왔다 한글은 2021년 7월 30일까지 제공한다고 한다. 그래서 이거부터 해보려고 한다. 2021. 6. 3.
퍼셉트론 학습 알고리즘 구현 객체 지향 퍼셉트론 API 객체 지향 방식을 사용한 퍼셉트론 인터페이스를 가진 파이썬 클래스를 만들어보자! perceptron 객체를 초기화한 후 fit 메서드로 데이터에서 학습하고 별도의 predict 메서드 로 예측을 만든다. rgen은 넘파이 난수 생성기로 사용자가 지정한 랜덤 시드로 이전과 동일한 결과를 얻을수 있다고 한다. 가중치가 0으로 초기화 되어 있다면 학습률 파라미터 eta는 가중치 벡터의 방향이 아니라 크기에만 영향을 미친다. fit 메서드는 가중치를 초기화한 후 훈련 세트에 있는 모든 개개의 샘플을 반복 순회하면서 이전절에서 설명한 퍼셉트론 학습규칙에 따라 가중치를 업데이트 한다. a.dot(b)나 np.dot(a,b)처럼 넘파이를 사용하여 배열 a,b 사이의 백터 점곱을 대신 파이썬.. 2021. 6. 3.
간단한 분류/ 알고리즘 훈련! 목차 머신러닝 알고리즘 직관적 이해 pandas, numpy, matplotlib으로 읽기, 처리, 시각화 python으로 선형 분류 알고리즘 구현 인공뉴런 - 초기 머닝러신 신경세포의 방식을 모방하여 이진 출력을 내는 논리 회로로 구성하는게 머신러닝의 초기 단계라고 할수 있다. 인공 뉴런의 수학적 정의 퍼셉트론 학습 규칙 퍼셉트론의 모델은 환원주의(복잡하고 추상적인 개념을 더 단순한 요소로 정의 할 수 있다.)의 접근 법이라고 한다. 즉, 출력을 내거나 내지 않는 두가지(0,1)경우만 있다. 학습규칙은 다음과 같다. 1. 가중치를 0또는 랜덤한 작은 값으로 초기화 한다. 2. 각 훈련 샘플 x(i)에서 다음 작업을 한다.(i는 i번째 훈련샘플) a. 출력값 y(i)를 계산한다. b. 가중치를 업데이트 .. 2021. 5. 29.
개요 머신러닝의 일반적 개념 이해하기 세 종류의 학습과 기본 용어 알아보기 성공적인 머신러닝 시스템을 설계하는 필수 요소 알아보기 데이터 분석과 머신러닝을 위한 파이썬을 설치하고 설정하기 머신러닝의 세종류 지도학습 레이블된 데이터, 직접 피드백, 출력 및 미래예측 비지도학습 레이블 및 타깃 없음, 피드백 없음, 데이터에서 숨겨진 구조 찾기 강화학습 결정과정, 보상시스템, 연속된 행동에서 학습 지도학습 분류(classification) 과거의 관측을 기반으로 새로운 샘플의 범주(category)형 클래스 레이블을 예측하는 것. 클래스 레이블은 이산적이고 순서가 없어 샘플이 속한 그룹으로 이해가 가능하다. 종류는 이진분류(2개), 다중분류(3개 이상) 이 있다. 회귀(Regression) 연속적인 출력 값을 예측.. 2021. 5. 25.
딥러닝 딥러닝의 특징 과제 가능성 최근 딥러닝 기술들 심층신경망 위와 같이 구성된 CNN을 만들어보자 여기에서 사용되는 합성곱 계층은 3X3 크기의 필터고 층이 깊어지면서 채널 수가 늘어나는 것이 특징이다. (합성곱 계층 채널 수는 16, 16, 32, 32, 64, 64로 늘어난다) 풀링계층을 추가하여 중간 데이터의 공간 크기를 줄여 간다. 3X3의 필터를 사용한 합성곱 계층 활성화 함수는 ReLU 완전연결 계층 뒤에 드롭아웃 계층 사용 Adam을 사용해 최적화 가중치 초기값은 'He'의 초기값 import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import pickle import numpy as np from collections i.. 2021. 5. 23.
CNN --- 합성곱 신경망 합성곱 - 두 함수 중 반전(reverse), 이동(shift)시켜가며 나머지 함수와의 곱을 연이어 적분하는 것 CNN은 주로 이미지 인식과 음성인식등 다양한 곳에서 사용하는데 특히 이미지 인식에서 기초로 많이 쓰인다. 전체 구조 지금까지 했던 신경망은 인접하는 계층의 모든 뉴런과 결합하여 만드는 완전연결 이엇으며, 이 완전히 연결된 계층을 Affine 계층이라는 이름으로 구현했습니다. 이 완전연결망은 Affine - ReLu 조합이후 마지막에 Affine-Softmax 에서 최종결과를 출력한다. CNN은 완결연결망에서 '합성곱 계층'과 '풀링 계층'이 추가된다. 즉, 'Conv - ReLU - (Pooling)' 으로 연결된다. (마지막은 Affine - Softmax) 합성곱 계층 각 계층 사이에는 .. 2021. 5. 20.
딥러닝 학습 관련 기술들 가중치 매개변수의 최적값을 탐색하는 최적화방법 가중치 매개변수 초깃값 하이퍼파라미터 설정방법 가중치 감소, 드롭아웃등 정규화 방법 배치정규화 위와 같은걸 할 예정이다. 매개변수의 갱신 신경망 학습의 목적: 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는것 이것은 매개변수의 최적 값을 찾는 문제이며, 이러한 문제를 푸는것을 최적화 라고 한다. 여태까지 최적화를 확률적 경사 하강법(SGD)인 매개변수의 기울기를 구해서 기울어진 방향으로 매개변수값을 갱신했다. 이것과 다른방법을 알아보자 확률적 경사 하강법 SGD W는 갱신할 가중치 매개변수이고 dL/dW는 W에 대한 손실함수의 기울기이다. η은 학습률인데 실제로는 0.01이나 0.001과 같은 값을 미리 정해서 사용한다. ←는 우변의 값으로 좌변의 값을 .. 2021. 5. 17.
오차역전파법 수치미분을 통하여 신경망의 가중치 매개변수를 구했지만 수치미분은 시간이 오래걸린다. 계산그래프 계산 그래프를 통하여 계산과정을 알아보면 오차역전파법을 잘 이해할수 있다. 위처럼 어떠한 값을 수식에 넣고 계산해 나가는 것이 계산그래프 같은것. 문제의 흐름을 살펴 보면 1. 계산 그래프를 구성 2. 그래프에서 계산을 왼쪽에서 오른쪽으로 진행한다. 이처럼 왼쪽에서 오른쪽으로 진행하는 단계를 순전파(forward propagation)라고 한다. 이것을 반대로 한다면 역전파(backward propagation) 라고 한다. 계산그래프를 사용하는 목적은 국소적계산과 역전파를 통해 '미분'을 효율적으로 계산할 수 있는 점에 있다. 국소적계산 - 각 노드에서 단순한 계산을 하고 중간에 저장을 할수 있다. 역전파를 .. 2021. 5. 14.
신경망 학습 - 학습 알고리즘 구현 신경망 학습의 절차 전제 신경망에는 적응 가능한 가중치와 편향이 있고 이 가중치와 편향을 훈련데이터에 적응하도록 조정하는 과정을 '학습' 이라한다. 1단계 - 미니배치 훈련데이터중 일부를 무작위로 가져옵니다. 이렇게 선별한 데이터를 미니배치라 하며, 그 미니배치의 손실함수 값을 줄이는 것이 목표이다. 2단계 - 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 기울기는 손실 함수의 값을 가장 작게 하는 방향을 제시한다. 3단계 - 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신한다. 4단계 - 반복 이것은 경사하강법으로 매개변수를 갱신하는 방법이며, 이때 데이터를 미니배치로 무작위로 선정하기 때문에 확률경사하강법(SGD)라고 부른다. 이제 손글씨 .. 2021. 5. 13.
신경망 학습 학습? - 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 여기서는 신경망이 학습할수 있도록 해주는 지표인 손실 함수를 소개합니다. 학습의 목표는 이 손실함수의 결과값을 작게 만드는 가중치 매개변수를 찾는것이다. 신경망은 데이터를 보고 학습할수 있다. 즉, 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다. (층이 깊은 딥러닝은 수억개가 된다.) Feature(특징) : 입력데이터에서 본질적인 데이터를 정확하게 추출할 수 있도록 설계된 변환기. MachineLearning : 모아진 데이터로부터 규칙을 찾아내는 역할을 기계가 담당 입력값을 벡터로 변환할 때 사용하는 특징은 여전히 사람이 한다.(안해도 되지만 하면 좋은결과) 딥러닝을 end-to-end machine learing이.. 2021. 5. 12.
신경망 신경망을 쓰는 이유 1개 이상의 은닉층을 가진 (polynomial이 아닌 비선형 활성 함수여야 함) 뉴럴 네트워크는 어떠한 연속 함수든 근사할 수 있다는 이론인 Universal approximation theorem이 있습니다. 이를 위해서 "비선형 활성함수"를 가지는 뉴럴 네트워크를 사용하는 것이고요, 선형 활성함수는 아무리 여러 층을 쌓아도 한층만 쌓고 선형 활성함수를 씌운 것과 결과적으로 같게 됩니다. 은닉층을 "깊게" 쌓는 이유는 데이터로부터 특성을 더 잘 잡아내기 위해서 입니다. Visualizing and Understanding Convolutional Networks라는 유명한 논문의 figure를 보시면 각 은닉층마다 잡아내는 피쳐들이 다른 것을 확인하실 수 있습니다. 라고 tenso.. 2021. 5. 12.
퍼셉트론 퍼셉트론 - 다수의 신호를 입력받아 하나의 신호를 출력하는 것 거의 이걸 기초로 모델을 만든다. 논리회로 w1, w2,θ = 0.5, 0.5, 0.7일 때 일치 w1, w2,θ = -0.5, 1.0, 1.0일 때 일치 w1, w2,θ 보통 논리회로는 and, or, nand, xor인데 여기 xor이 없다. 나중에 없는 이유를 설명~하겠다 퍼셉트론 구성 구성하기 앞서 위에서 구성한 식에서 임계값θ를 좌항으로 이항 시켜 b로 바꾼다. b는 bias(편향)이라 부른다. AND게이트 구성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import numpy as np def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]).. 2021. 5. 11.
반응형