728x90
반응형

딥러닝 (Deep Learning) 32

[tensorflow, keras] 딥러닝 기본 코드(2-3,4) 모델 컴파일(손실함수, 최적화, 지표), 모델 학습 평가 예측

[youtube] Deep Learning Full Tutorial Course using TensorFlow and Keras - 이수안컴퓨터연구소 참고 🧡목차 딥러닝 구조 및 학습 2. 모델(Model) 3) 모델 컴파일 - 손실함수(loss function) - 최적화(optimization) - 지표(metrics) 4) 모델 학습, 평가 및 예측 - fit() - evaluate() - predict() 딥러닝 구조 및 학습 딥러닝 구조와 학습에 필요한 요소 모델(네트워크)를 구성하는 레이어(layer) 입력 데이터와 그에 대한 목적(결과) 학습시에 사용할 피드백을 정의하는 손실 함수(loss function) 학습 진행 방식을 결정하는 옵티마이저(optimizer) 2. 모델(Model) 딥러..

[tensorflow, keras] 딥러닝 기본 코드(2-2) 모델 가중치 확인

[youtube] Deep Learning Full Tutorial Course using TensorFlow and Keras - 이수안컴퓨터연구소 참고 🧡목차 딥러닝 구조 및 학습 2. 모델(Model) 2) 모델 가중치 확인 딥러닝 구조 및 학습 딥러닝 구조와 학습에 필요한 요소 모델(네트워크)를 구성하는 레이어(layer) 입력 데이터와 그에 대한 목적(결과) 학습시에 사용할 피드백을 정의하는 손실 함수(loss function) 학습 진행 방식을 결정하는 옵티마이저(optimizer) 2. 모델(Model) 딥러닝 모델은 레이어로 만들어진 비순환 유향 그래프(Directed Acyclic Graph, DAG) 구조 2) 모델 가중치 확인 - 모델 제작 inputs = Input(shape=(28..

[tensorflow, keras] 딥러닝 기본 코드(2-1) 모델의 구성(Sequential, API함수, 서브클래싱)

[youtube] Deep Learning Full Tutorial Course using TensorFlow and Keras - 이수안컴퓨터연구소 참고 🧡목차 딥러닝 구조 및 학습 2. 모델(Model) 1) 딥러닝모델을 구성하는 3가지 방법 - Sequential - API함수 - 서브클래싱(Subclassing) 딥러닝 구조 및 학습 딥러닝 구조와 학습에 필요한 요소 모델(네트워크)를 구성하는 레이어(layer) 입력 데이터와 그에 대한 목적(결과) 학습시에 사용할 피드백을 정의하는 손실 함수(loss function) 학습 진행 방식을 결정하는 옵티마이저(optimizer) 2. 모델(Model) 딥러닝 모델은 레이어로 만들어진 비순환 유향 그래프(Directed Acyclic Graph, DA..

[tensorflow, keras] 딥러닝 기본 코드(1) - Layer(Dense, Activation, Flatten, Input)

[youtube] Deep Learning Full Tutorial Course using TensorFlow and Keras - 이수안컴퓨터연구소 참고 🧡목차 딥러닝 구조 및 학습 1. 레이어 - dense - activation - flatten - input 딥러닝 구조 및 학습 딥러닝 구조와 학습에 필요한 요소 모델(네트워크)를 구성하는 레이어(layer) 입력 데이터와 그에 대한 목적(결과) 학습시에 사용할 피드백을 정의하는 손실 함수(loss function) 학습 진행 방식을 결정하는 옵티마이저(optimizer) 1. 레이어(Layer) 신경망의 핵심 데이터 구조 하나 이상의 텐서를 입력받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈 상태가 없는 레이어도 있지만, 대부분 가중치(wei..

[tensorflow] 텐서 기본코드

1. 기본 텐서 만들기 - constant - rank import numpy as np import tensorflow as tf #0D TENSOR(스칼라) t0 = tf.constant(1) print(t0) print(tf.rank(t0)) #1D TENSOR(벡터) t1 = tf.constant([1,2,3]) print(t1) print(tf.rank(t1)) #2D TENSOR(행렬) t2 = tf.constant([[1,2,3], [4,5,6], [7,8,9]]) print(t2) print(tf.rank(t2)) #3D TENSOR - 연속시퀀스, 시계열데이터 t3 = tf.constant([[[1,2,3], [4,5,6], [7,8,9]], [[1,2,3], [4,5,6], [7,8,9..

GNN

GNN(Graph Neural Network)이 해결할 수 있는 문제 - Node Classification : Node embedding을 통해 점들을 분류하는 문제. 일반적으로 그래프 일부만 레이블 된 상황에서 반지도학습을 한다. 대표적인 응용 영역으로 인용네트워크, Reddit 게시물, Youtube 동영상이 있다. - Link Prediction : 그래프의 점들 사이의 관계 파악하고 두 점 사이에 얼만큼 연관성이 있는지 예측하는 문제. 영화와 유저가 점이고 유저가 영화를 봤으면 선으로 연결해준 그래프를 생각할 수 있다. 아직 연결되지 않은 영화,유저의 쌍 중 연결될 가능성이 높은 쌍을 찾아 유저가 영화를 감상할 가능성이 높다고 예측할 수 있다. ex) 페이스북 친구 추천, 왓챠/유튜브/넷플릭스 ..

뉴스 기사 분류 : 로이터(Reuters) 데이터셋 (병목현상, 레이블을 벡터로 바꾸는 방법들 2가지)

1986년 로이터에서 공개한 짧은 뉴스 기사와 토픽의 집합인 데이터. 텍스트 분류를 위해 널리 사용되는 간단한 데이터셋으로 46개의 토픽이 있고 어떤 토픽은 다른 것에 비해 데이터가 많다. 각 토픽은 훈련 세트에 최소한 10개의 샘플을 가지고 있다. (이 데이터셋은 원본 로이터 데이터셋(135개 토픽) 중 샘플이 많은 것을 뽑아 간단하게 만든 것) defalt값으로 8,982개의 훈련 샘플과 2,246개의 테스트 샘플이 있음. IMDB, MNIST와 마친가지로 케라스에 포함되어 있다. IMDB과 마찬가지로 미리 전체 데이터셋의 단어를 고유한 정수 인덱스로 바꾼 후 훈련/테스트 데이터로 나누어 놓았다. >> 자세한 코드 & 설명 gggggeun/study Contribute to gggggeun/study..

영화 리뷰 분류 : IMDB(Internet Movie Database)

이 예제에서 리뷰 텍스트를 기반으로 영화 리뷰를 긍정(positive)과 부정(nagative)으로 분류하는 방법을 연습해 보았다. IMDB 데이터셋도 케라스에 포함되어 있으며, 이 데이터는 전처리되어 있어 각 리뷰(단어 시퀀스)가 숫자 시퀀스로 변환되어 있다. 여기서 각 숫자는 사전에 있는 고유한 단어를 나타낸다. >> 전체코드 gggggeun/study Contribute to gggggeun/study development by creating an account on GitHub. github.com 1. 신경망 모델 # 16개의 은닉 유닛을 가진 2개의 은닉층 # 현재 리뷰의 감정을 스칼라 값의 예측으로 출력하는 세 번째 층 # 은닉층 활성화 함수 relu(음수는 0), 출력층 활성화 함수 si..

신경망의 구조 : layer, data, loss function, optimizer

[케라스 창시자에게 배우는 딥러닝] 참고 신경망의 구조 네트워크(또는 모델)를 구성하는 층 입력 데이터와 그에 상응하는 타깃 학습에 사용할 피드백 신호를 정하는 손실 함수 학습 진행 방식을 결정하는 옵티마이저 1. 층(layer) 층은 신경망의 핵심적인 데이터 구조이며, 하나 이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈이다. 어떤 종류의 층은 가중치가 없지만(Flatten, Dropout, Pooling 등), 대부분의 경우 가중치를 갖는다. 가중치는 확률적 경사 하강법에 의해 학습되는 하나 이상의 텐서이며 여기에 네트워크가 학습한 지식이 담겨 있다. 층마다 적절한 텐서 포맷과 데이터 처리 방식이 다르다. 예를 들어 (samples, features) 크기의 2D 텐서가 저..

신경망에서 미분이 필요한 이유 2 : gradient descent (경사하강법), learning rate(학습률)

[케라스 창시자에게 배우는 딥러닝] 참고 📢 목차 1. 그래디언트(gradient) 2. 확률적 경사 하강법 (Stochastic gradient descent) 3. 최적화 방법(optimization method) (=옵티마이저) 1. 그래디언트(gradient) gradient는 수학적으로 텐서 연산의 변화율이다. 이는 다차원 입력, 즉 텐서를 입력으로 받는 함수에 변화율 개념을 확장시킨 것이다. y_pred = dot(W, x) loss_value = loss(y_pred, y) 위의 식은 신경망의 입력데이터(x)를 가중치(행렬W)와 곱하고 예측값(y_pred)을 얻고, 예측값과 실제값(타깃y)의 손실함수(loss)를 나타낸 식이다. W를 사용해 타깃의 예측값을 계산하고, 손실(예측값과 타깃값 사..

신경망에서 미분이 필요한 이유 1 : 미분, 순간 변화율, 기울기

[케라스 창시자에게 배우는 딥러닝], [모두의 딥러닝] 참고 1. 미분, 순간 변화율, 기울기 실수 x를 새로운 실수 y로 매핑하는 연속적이고 매끄러운 함수(미분가능한) f(x)=y 가 있다. 예를 들어 아래 2차함수 그래프가 있다고 가정해보자. *미분가능하다 : 변화율을 유도할 수 있다는 의미로 연속적이고 매끄러운 함수. x축에 있는 한 점 a에 대응하는 y값은 $a^{2}+b$가 된다. 이때 a가 오른쪽이나 왼쪽으로 조금씩 이동한다고 생각해보자. 그러면 y도 조금씩 변화할 것이다. 좀 더 상상력을 발휘해 이번엔 a가 아주아주 미세하게 "0에 가까울 만큼" 움직였다고 생각해보자. 그러면 y값도 역시 매우 미세하게 변화를 할 텐데, 이번엔 너무 미세해서 실제로 움직이는게 아니라 방향만 드러내는 정도의 순..

신경망 - 가중치(weight), 랜덤 초기화(random initialization), 훈련 루프(training loop)

[케라스 창시자에게 배우는 딥러닝] 참고 신경망의 각 층은 입력 데이터를 다음과 같이 변환한다. 예) keras.layers.Dense(512, activation='relu') ⬇ output = relu(dot(W, input) + b 이 식에서 텐서 W와 b는 층의 속성처럼 볼 수 있다. 이들은 가중치(weight) 또는 훈련되는 파라미터(trainable parameter)라고 부를 수 있으며, 각각 커널(kernel)과 편향(bias)라고 부르기도 한다. *커널은 여러가지 의미로 사용된다. SVM의 커널 함수, 합성곱 신경망의 필터를 지칭하기도 함. 이런 가중치에는 훈련 데이터를 신경망에 노출시켜서 학습된 정보가 담겨 있다. 초기에는 가중치 행렬이 작은 난수로 채워져 있다. 이것을 무작위 초기화..

텐서 연산 기초 공부하기

[케라스 창시자에게 배우는 딥러닝] 참고 📢 목차 1. 원소별 연산 (element-wise operation) 2. 브로드캐스팅 (broadcasting) 3. 텐서 점곱 ( Tensor dot operation) 4. 텐서 크기 변환 (Tensor reshaping), 전치(transposition) 5. 텐서 연산의 기하학적 해석 6. 딥러닝의 기하학적 해석 컴퓨터 프로그램의 이진수 입력을 몇 개의 이항 연산(AND, OR, NOR 등)으로 표현할 수 있는 것 처럼, 심층 신경망이 학습한 모든 변환을 텐서 연산(tensor operation)으로 나타낼 수 있다. ex) 텐서 덧셈, 텐서 곱셈 keras.layers.Dense(512, activation='relu') Dense 클래스의 객체가 모..

신경망의 데이터 표현 3 - tensor & data 종류와 예시

[케라스 창시자에게 배우는 딥러닝] 참고 텐서의 예 : 데이터 종류 Tensor 크기 데이터 종류 2D 텐서 (samples, featutres) 벡터 데이터 3D 텐서 (samples, timesteps, features) 시계열 데이터 또는 시퀀스 데이터 4D 텐서 (samples, height, width, channels) 또는 (samples, channels, height, width) 이미지 5D 텐서 (samples, frames, height, width, channels) 또는 (samples, frames, channels, height, width) 동영상 1. 벡터 데이터 (samples, featutres) 대부분의 경우에 해당. 이런 데이터셋에서는 하나의 데이터 포인트가 벡터로..

신경망의 데이터 표현 2 - data 다루기

[케라스 창시자에게 배우는 딥러닝] 참고 사실 딥러닝을 시작하면서 코딩을 이해하는데 어려움이 많았다. 기초가 부족한채 계속 달려나가니 공부하면 할 수록 카오스 상태에 빠졌다. 기본 용어라던지 (사실 tensor가 뭔지도 몰랐다.) 이미지를 숫자로 표현하고 슬라이드를 자유자재로 사용하고 이미지를 추출하는 것 등 기본적인 부분부터 흔들렸던 것 같다. 기초부터 다시 차근차근 익혀보자! 📢 목차 1. 이미지 데이터 tensor 속성, 이미지 불러오기 2. 이미지 개수 조절, 이미지 자르기(픽셀 조절) - slicing 3. 배치 데이터 1. 이미지 데이터 tensor 속성, 이미지 불러오기 MNIST 데이터의 이미지 배열은 8비트 정수형 3D 텐서이다. 정확하게 28 X 28크기의 정수 행렬 6만 개가 있는 배..

신경망의 데이터 표현 1 - tensor

[케라스 창시자에게 배우는 딥러닝] 참고 텐서(tensor) : 다차원 넘파이 배열. 머신러닝 기본 데이터 구조로 사용. 텐서플로를 비롯해 딥러닝 라이브러리들은 다차원 배열을 텐서라고 부른다. (하지만 파이썬 커뮤니티에서 넘파이 배열을 텐서라고 부르지는 않는다.) 텐서는 임의의 차원 개수를 가지는 행렬의 일반화된 모습이다. 텐서에서는 차원(dimension)을 종종 축(axis)라고 부른다. 핵심적으로 텐서는 데이터를 위한 컨테이너(container)이다. 거의 수치형 데이터를 다루므로 숫자를 위한 컨테이너라고 생각하면 된다. 텐서의 핵심 속성 축의 개수(rank) : 2D = (axis=2), 3D = (axis=3) 크기(shape) : 텐서의 각 축을 다라 얼마나 많은 차원이 있는지 나타낸 파이썬의..

728x90
반응형