반응형

전체 글 297

[Machine Learning] Data Pre-Processing

Data Pre-Processing Normalization 데이터의 스케일이 다른 경우 출력에 영향이 달라질 수 있다 데이터의 특성에 따라 normalization 방식을 선택해야 한다. MinMax 일정범위(일반적으로 0~1) 사이로 scaling 함 실제 데이터의 범위가 테스트 데이터의 min max 범위를 벗어나는 경우 학습이 제대로 되지 않을 수 있다. Standard mean 차감을 통해 zero-centered화 해주고 std로 나누어 주어 데이터가 일정 범위안에 머무르게 함 Data Division Data 구축 시 유의할 점 노이즈 데이터 class 불균형 현장과 다른 상황 모집단을 제대로 표현하지 못한 표본 집단 데이터 잘못된 정답 표기(오류 라벨링)

[Machine Learning] One-Hot Encoding

One-Hot Encoding 대부분의 데이터의 일반적인 특성은 범주형 특성(categorical feature)을 가진다. 범주형 변수를 표현하는데 가장 널리 쓰이는 방법 one-out-of-N encoding 또는 dummy variable이라고도 한다 범주형 변수를 0 또는 1 값을 가진 하나 이상의 새로운 특성으로 표현 범주형 데이터 변환 데이터 셋을 읽고 나면 범주형 데이터가 존재하는지 확인하는 것이 좋다 panda value_count(): 데이터의 유일한 값이 몇 번 나타나는지 출력 data.gender.value_counts() >> Male 21790 Female 10773 Name: geder, dtype: int64

[Data Visualization] TensorBoard

TensorBoard 텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공합니다. 손실 및 정확도와 같은 측정항목 추적 및 시각화 모델 그래프(작업 및 레이어) 시각화 시간의 경과에 따라 달라지는 가중치, 편향, 기타 텐서의 히스토그램 확인 저차원 공간에 임베딩 투영 이미지, 텍스트, 오디오 데이터 표시 TensorFlow 프로그램 프로파일링 그 외 다양한 도구 References www.tensorflow.org/tensorboard?hl=ko

[Machine Learning] RNN(Recurrent Neural Network)

RNN(Recurrent Neural Network) Deep Learning 알고리즘 중 순차적인 데이터를 학습하여 classifcation 또는 prediction을 수행 시계열 데이터에서 과거에 입력된 데이터와 나중에 입력된 데이터 사이의 관계를 고려해야 한다 여러 개의 데이터가 순서대로 입력되었을 때 앞서 입력 받은 데이터를 잠시 기억해 놓는 방법을 사용 기억된 데이터가 얼마나 중요한지를 판단하여 별도의 가중치를 줘서 다음 데이터 사용 모든 입력 값에 이 작업을 순서대로 실행하므로 다음 층으로 넘어가기 전에 같은 층을 맴도는 것처럼 보이기 때문에 순환 신경망이라고 부름 각 셀의 결과는 뒤이어 들어오는 입력 값에 영향을 줌 DNN의 경우 각 layer마다 파라미터들이 독립적이었으나 RNN 은 이를 ..

[Machine Learning] CNN(Convolutional Neural Network)

Fully Connect Layer Dense Layer라고도 함 한 층(layer)의 모든 뉴런이 다음 층(layer)의 모든 뉴런과 연결된 상태 1차원 배열의 형태로 평탄화된 행렬을 통해 이미지를 분류하는데 사용되는 계층 [TensorFlow] - Neural Network MNIST 데이터 처리 한 장의 컬러 사진은 3차원 데이터로 FC(Fully Connected) 신경을 학습시켜야 할 경우에, 3차원 사진 데이터를 1차원으로 평면화 시켜야 함 → 이미지 데이터 평면화 과정에서 공간 정보 유실로 인한 정보 부족으로 인공 신경망에서 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있음 데이터 형상의 무시 = 이미지의 공간적(spatial)한 정보 무시 학습해야 할 가중치(w)가 많음 C..

[Machine Learning] TensorFlow with Keras

Keras 케라스를 활용한 모델 구축 방법 Seuqential API tf.keras.Sequential 순차적인 레이어의 스택 구현 가능 from tensorflow.keras import layers model = tf.keras.Sequential() model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax')) 모델 구현 제약 모델의 층들이 순차적으로 구성되어 있지 않은 경우 Sequential 모듈을 사용해 구현 어려움 Functional API 다중 입력값 모델(Multi-input models) 다중..

[Supervised Learning][Classification] Logistic Regression

Logistic Regression(로지스틱 회귀) 선형 회귀를 입력으로 받아 특정 레이블로 분류 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계 기법 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류(classification) 기법으로도 볼 수 있음 이진 분류 문제(1과 0 중에 하나를 판별하는 문제)는 로지스틱 회귀를 이용하여 풀어 갈 수 있다 Sigmoid 함수도 w와 b를 구하는 것이 목적 w 그래프의 경사도 값이 커지면 경사가 커지고, 값이 작아지면 경사가 작아짐 b 그래프의 좌우 이동을 의미 값이 크고 작아짐에 따라 그래프가 이동 Error, Cost o..

[Machine Learning] TensorFlow Function

TensorFlow Function Pytorch, Theano 등의 딥러닝 라이브러리에 있는 함수 기능을 본떠 TensorFlow 버전 2에서 새로 만들어진 방법 선언적으로 계산 과정을 구현 일반 파이썬 함수처럼 정의 속도 향상을 위한 컴파일이 가능하며, @tf.function 데코레이터를 적용하여 구현 import tensorflow as tf def t_func1(x): tv = tf.Variable([[4,5],[9,10]]) return tv * x print(t_func1(10)) @tf.function def t_func2(a,b): return tf.matmul(a, b) x = [[4,5,6],[6,7,9]] w = tf.Variable([[2,5],[6,5],[17,10]]) print..

[Machine Learning] TensorFlow Matrix

TensorFlow Matrix 텐서플로우에서 행렬의 차원은 shape라는 개념으로 표현 행렬의 가장 기본 개념은 행과 열 m x n : m=행, n=열 행렬 곱셈 곱셈은 앞의 행렬에서 행과 뒤의 행렬의 열을 순차적으로 곱해준다 앞 행렬의 열과 뒤 행렬의 행이 같아야 곱할 수 있다 행렬 덧셈 행렬의 덧셈은 같은 행과 열에 있는 값을 더한다 덧셈을 하는 두 개 행렬의 차원은 동일해야 한다 텐서플로우 행렬 표현 import tensorflow as tf a = tf.constant([[2,0],[0,1]], dtype=tf.float32) b = tf.constant([[1,1],[1,1]], dtype=tf.float32) print(tf.matmul(a, b).numpy()) print(tf.linalg..

[Machine Learning] Perceptron

Perceptron (퍼셉트론) 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망 인간의 신경망(neural network)을 모방하여 만들어짐 신경망을 이루는 가장 중요한 기본 단위 입력 값과 가중치를 곱하여 가중치합을 만들고, 만들어진 가중치값은 활성화 함수에 보내 출력 값을 만든다. x: 입력 값 w: 가중치(Weight) b: 편향(bias) 인간의 신경망은 수 많은 뉴런(neuron)으로 구성 뉴런과 뉴런 사이에 시냅스(synapse)라는 연결 부위가 있는데 신경 말단에서 자극을 받으면 시냅스에서 화학 물질이 나와 전위 변화를 일으켜 다른 뉴런으로 정보 전달 전위가 임계 값을 넘으면 다음 뉴런으로 신호를 전달하고 인계 값에 미치지 못하면 아무것도 하..

[Data Visualization] Matplotlib

Matplotlib (맷플롯립) 시각화 작업은 데이터 분석에서 무척 중요한 부분 중에 하나이다. matplotlib는 matlab과 유사한 인터페이스를 지원하기 위해 만들어진 파이썬 패키지이다. matplotlib는 다양한 GUI 백엔드를 지원하고 있으며 pdf, svg, jpg, png, gmp, gif 등 일반적으로 널리 사용되는 포맷으로 도표를 저장할 수 있다. https://matplotlib.org/2.0.2/gallery.html Thumbnail gallery — Matplotlib 2.0.2 documentation matplotlib.org 라인 플롯(line plot) 스캐터 플롯(scatter plot) 컨투어 플롯(contour plot) 서피스 플롯(surface plot) 바 차..

[Machine Learning] TensorFlow Basic

TensorFlow 데이터 흐름 그래프(Data Flow Graph)를 사용하여 수치 연산을 하는 오픈소스 라이브러리 그래프의 node는 수치 연산을 나타내고 edge는 노드 사이를 이동하는 다차원 데이터 배열(tensor)를 나타낸다 머신러닝과 딥 뉴럴 네트워크 연구를 목적으로 구글의 인공지능 연구 조직인 구글 브레인 팀에서 개발 Tensor 딥러닝에서 데이터를 표현하려는 방식을 Tensor(텐서)라고 함 텐서는 행렬로 표현할 수 있는 2차원 형태의 배열을 높은 차원으로 확장한 다차원 배열을 말함 Tensor = Multidimensional Arrays = Data 과학과 공학 등 다양한 분야에서 이전부터 쓰이던 개념 수학에서는 임의의 기하 구조를 좌표 독립적으로 표현하기 위한 표기법으로 알려져 있음..

[Machine Learning] Artificial Intelligence (인공지능)

인공지능(Artificial Intelligence) 기계학습을 뛰어 넘는 분석기법으로 시스템에 추론능력을 제공 인지(Perception) Sensing: image, sound, touch, ... Understanding: vision, language 추론(Reasoning) Given facts → new facts Problem-solving based on knowledge 학습(Learning) Improving performance as it repeats Predicting the future based on past experience (data) Adaptiveness, Creativity, etc. 학습 인간이 연속된 경험을 통해 배워가는 일련의 과정 기억(Memorization)하..

Object Reference

자료형과 참조 변수 C Python 변수 중심 객체 중심 int a, b; a = 100; b - a; a = 100 b = a a = 300 미리 생성해 둔 객체 -5 ~ 256의 정수객체는 미리 생성 a = 100 b = a a = 300 print(id(100)) print(id(a)) print(id(300)) print(id(b)) >> 140732971160336 2307158257328 2307158257328 140732971160336 리스트의 구성요소 C Python 배열 원소의 크기는 int형으로 고정 리스트의 항목은 서로 다른 자료형도 가능 리스트의 요소 a[0], a[1], a[2]는 참조형 int a[3] = {100, 200, 300} a = [100, "two hundred"..

728x90
반응형