기본 콘텐츠로 건너뛰기

라벨이 tensorflow인 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

Multiclass Classification

내용 Reuters dataset 데이터 준비 신경망 구축 학습과 검정 그리고 추정 이 글은 'Deep Learning with Python'의 3.5절의 내용입니다. 다중 그룹 분류 로이터 뉴스와이어를 46개의 상호 배타적인 주제로 분류하는 네트워크를 구축합니다. 클래스가 많기 때문에 이 문제는 다중 클래스 분류의 인스턴스입니다. 각 데이터 포인트는 하나의 범주로만 분류되어야 하기 때문에 문제는 보다 구체적으로 단일 레이블, 다중 클래스 분류의 인스턴스입니다. 각 데이터 포인트가 여러 범주(이 경우 주제)에 속할 수 있는 경우 다중 레이블, 다중 클래스 분류 문제에 직면하게 됩니다. 1986년에 Reuters에서 발행한 짧은 뉴스와 해당 주제의 집합인 Reuters 데이터 세트를 사용하여 작업할 것입니다. 이것은 텍스트 분류를 위해 널리 사용되는 간단하고 널리 사용되는 장난감 데이터 세트입니다. 46개의 다른 주제가 있습니다. 일부 주제는 다른 주제보다 더 많이 표시되지만 각 주제에는 교육 세트에 최소 10개의 예가 있습니다. IMDB 및 MNIST와 마찬가지로 Reuters 데이터 세트는 Keras의 일부로 패키지로 제공됩니다.. Reuters dataset import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.datasets import reuters from tensorflow.keras import models, layers (datr, latr),(date, late)=reuters.load_data(num_words=10000) Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/reuters.npz 2113536/2110848 [=============

신경망의 구성과 binary classification

내용 layers: the building blocks of deep learning Binary classification example: IMDB 데이터 준비 신경망 구축 학습시 모델 검증과 예측 이 글은 "Deep Learning with Python"의 3.4 절의 내용입니다. 신경망의 구성과 binary classification 신경망 훈련은 다음 객체를 중심으로 이루어집니다. Layers: 네트워크(또는 모델)로 결합되는 계층 입력 데이터 및 해당 대상 학습에 사용되는 피드백 신호를 정의하는 손실 함수 학습 진행 방법을 결정하는 옵티마이저 다음과 같이 상호 작용을 시각화할 수 있습니다. 함께 연결된 레이어로 구성된 네트워크는 입력 데이터를 예측에 매핑합니다. 그런 다음 손실 함수는 이러한 예측을 목표와 비교하여 손실 값을 생성합니다. 네트워크의 예측이 예상과 얼마나 잘 일치하는지 측정합니다. 옵티마이저는 이 손실 값을 사용하여 네트워크의 가중치를 업데이트합니다. layers: the building blocks of deep learning from keras import layers layer=layers.Dense(32, input_shape=(784,)) layer <keras.layers.core.dense.Dense at 0x7f9f7ed824d0> 첫 번째 차원이 784인 입력 2D 텐서로만 받아들이는 레이어(배치 차원인 축 0은 지정되지 않았으므로 모든 값이 허용됨)로 이 레이어는 첫 번째 차원이 32로 변환된 텐서를 반환합니다. 그러므로 다음 레이어의 입력 단위는 32 차원이어야 합니다. Keras를 사용할 때 모델에 추가하는 레이어가 들어오는 레이어의 모양과 일치하도록 동적으로 만들어지기 때문에 호환성에 대해 걱정할 필요가 없습니다. 예를 들어 다음을 작성한다고 가정합니다. from kera

신경모형망의 구성과 다층퍼셉트론(MLP)

내용 신경모형망의 기본 과정 대표적인 신경망의 종류 다층 퍼셉트론(MLP) MLP 분류기 모델 MPL과 Keras를 사용하여 모델 구축 비선형 함수 정규화(Regulariztion) 출력활성화와 비용함수 신경모형망의 구성 신경모형망의 기본 과정 네트워크(또는 모델)로 결합되는 계층 입력 데이터 및 해당 대상 학습에 사용되는 피드백 신호를 정의하는 손실 함수 학습이 어떻게 진행되는지를 결정하는 옵티마이저 신경망의 전체적인 과정은 그림 1과 같습니다. 그림 1. 신경망 모형의 기본 과정. 그림 1에 나타낸 것과 같은 신경망의 작동은 6단계로 구분할 수 있습니다. 입력을 위한 층(layer)을 구성하며 초기 가중치(W)와 편차(b)를 부여합니다. 층내에서 변수와 가중치의 연산에 의한 예측값을 산출합니다. 예측값과 실측치인 y를 손실함수(loss function)에 입력됩니다. 비용(cost)을 계산됩니다. 최적화 과정에 의해 가중치는 업데이트 됩니다. 업데이트 된 가중치는 다시 2)~5) 과정을 반복하여 최소비용에 수렴되는 가중치를 생성합니다. 대표적인 신경망의 종류 MLP: Multilayer Perceptron CNN: Convolutional Neural Network RNN: Recurrent Neural Network 다층 퍼셉트론(MLP) 완전연결(fully connected, FC) 네트워크입니다. MLP는 단순 로지스틱 및 선형 회귀 문제에서 일반적으로 적용됩니다. 그러나 MLP는 순차 및 다차원 데이터 패턴을 처리하는 데 최적이 아닙니다. 설계상 MLP는 순차적 데이터의 패턴을 기억하는 데 어려움을 겪고 다차원 데이터를 처리하기 위해 상당한 수의 매개변수가 필요합니다. 순차적 데이터 입력의 경우 RNN이 널리 사용되는 이유는 내부 설계를 통해 네트워크가 데이터 기록에서 종속성을 발견할 수 있고 이는 예측에

텐서연산: dot operation

내용 텐서 연산 요소별 연산 Tensor dot 텐서 연산의 기하학적 해석 텐서 연산(Tensor Operation) 텐서 연산 모든 컴퓨터 프로그램이 입력된 데이터를 이진수로 변환시켜 AND , OR , NOR 등의 이진 연산 과정을 거치는 것과 같이 신경망에서 학습한 모든 변환은 텐서에 적용된 소수의 텐서 연산이 실행 될 수 있습니다. 숫자 데이터의 예를 들어 텐서를 추가하거나 텐서를 곱하는 등의 작업이 가능합니다. 모델을 생성하기 위해 먼저 층(layer)을 구축합니다. tensorflow.keras의 모듈을 적용하여 층을 구축하는 대표적 방법은 다음과 같습니다. tf.keras.layers.Ddense(512, activation="relu") 이 층은 2D 텐서를 입력받아 2D를 반환합니다. 이 층에서 수행되는 함수는 다음과 같습니다. output=relu(dot(W, input)+b) 요소별 연산 입력 데이터 input과 가중치 W의 내적에 다른 벡터 b 사이의 덧셈 연산이 이루어지며 최종적으로 relu 연산 즉, 최대값을 반환하는 max(x, 0) 연산을 수행합니다. 위 연산에서 덧셈과 relu() 연산은 요소별 연산(Element-wise operation) 입니다. 즉, 고려 중인 텐서의 각 요소에 독립적으로 적용되는 연산입니다. 그러므로 대규모 병렬 구현에 매우 적합합니다. 임의의 두 배열 객체의 덧셈과 relu()함수의 연산은 다음과 같이 요소별로 이루어집니다. import tensorflow as tf from tensorflow import keras import numpy as np import pandas as pd from scipy import stats from sklearn import preprocessing import matplotlib.pyplot as plt x=np.array([[2, -6, 3],[6, 8, 7]]) y=np.array([[5, 1,

one-hot 인코딩 : tensorflow

one-Hot encoding 인코딩(Encoding) 카테고리 값이나 텍스트 정보를 저리가 쉬운 정수로 변환하는 과정 one-hot 인코딩은 one-of-k라고도 하며 0~k-1의 값을 가지는 정수 스칼라 값을 0 또는 1을 가지는 k차원(클래스수 =k)의 벡터로 변환합니다. 예로서 자료의 목록이 0~2의 범위를 가지는 경우에서 값들이 0, 1, 2라면 다음과 같이 변환됩니다. 0: 1,0,0 1: 0,1,0 2: 0,0,1 import numpy as np x=[0, 1, 2] x_oh=np.zeros((3,3));x_oh array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]) for i, j in zip([0,1,2], x): x_oh[i, j]=1 x_oh array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) tensorflow.one_hot() tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None) depth의 지정한 위치(indices)에 지정한 값(on_value), 나머지 위치에 off_value값을 입력합니다. on_value와 off_value의 기본값은 1과 0입니다. depth는 axis의 값에 따라 유동적입니다. indice가 feature 즉, 1차원으로 구성된 경우 axis=-1 → feature × depth axis=0 → depth × feature indice가 2차원 즉, [batch, feature]일 경우 axis=-1 → batch × feature × depth axis=1 → batch × depth × feature axis=0 → depth × batch ×

순전파와 역전파(forward & backward propagation)

내용 학습과정 미분 기울기(gradient): 자동미분 자동미분 순전파와 역전파(forward & backward propagation) 학습과정 일반적으로 신경망은 가장 먼저 층(layer)을 구성하며 입력은 그 층을 통과하여 relu 등과 같은 활성함수에 의해 출력됩니다. tf.keras.layers.Dense(512, activation="relu") output=relu(dot(W, input)+b) 위 relu 함수에서 W, b는 층의 속성인 텐서호 입력과 출력의 관계를 결정하는 가중치와 편차로 위 과정을 반복하면서 학습되는 매개변수입니다. 각각은 커널과 편향 속성이라고 합니다. 다음에서 나타낸 과정과 같이 초기 W, b는 임의 값으로 지정되며 입렬(input)과 함께 층으로 입력되며 드 출력이 이렂ㅇ한 기준을 만족하지 않은 경우 다시 층으로 입력되는 과정을 반복합니다. 이 과정을 학습(training)이라고 하며 학습을 통해 W, b의 최적화가 이루어지며 그에 대응하는 결과물이 출력됩니다. 이 과정이 머신러닝 또는 딥러닝의 핵십이 됩니다. W 0 , b 0 , Input → layers ← ↓ ↑ activation, other operation ↓ W optim , b optim ↓ Output →: forward →: backward 위 학습과정은 다음의 단계로 구성됩니다. 1 단계. 레이어, 활성함수, 출력층을 구축합니다. 가중치, 편차, 입력을 조합하는 초기 모델을 설정합니다. 2 단계. 모델에 의한 y의 추정치(y pred )를 계산합니다. 이 단계를 forward propagation(순방향 전파)라고 합니다. 3 단계. y pred 와 y간의 불일치 측정값인 비용(cost) 또는 손실(loss)을 계산합니다. 비용함수를 설정합니다. 4 단계. 손실을 최소화하기 위한 W, b를 업데이트