반응형

인공지능 752

물체의 위치까지 구분하는 인공지능 -segmentation, odject detection

여태까지 CNN으로 물체가 있다, 없다 정도만 알았다면 이번에 해볼 것은 어디 위치에 물체가 있는지 알려주는 segmentation이다. classification은 전체 input에 대해 오직 한개의 결과만 나오고, 한가지 class만 찾을 수 있다. segmentation은 픽셀 단위로 그 위치에 무엇이 있는지 알려준다. 그러므로 학습시킬 때 정답도 픽셀단위로 무엇이다 라벨링해야해서 손이 많이 간다. 여기선 DENSE layer를 사용하지 않고, convolution을 통한 down sampling, up sampling을 사용한다. 그리고 결과는 클래스 개수 만큼 채널이 나오고 원 핫 인코딩 된다. 이렇게 진행하면 어디에 무엇이 있는지 위치정보가 손실되게 된다. 그 위치 정보를 주기 위해 연결을 한..

인공지능/공부 2023.12.15

생성형 인공지능 Autoencoder - 개념

여태까지 FCN, CNN, CAM 모두 supervised learning였다. 즉 지도학습으로 input(data)와 정답(label)이 주어지는 학습이었다. 그러나 오늘 다룰 Autoencoder는 label이 없는 즉 정답이 input인 unsupervised learning이다. 나중에 나오겠지만 차원을 축소시켜 피쳐의 개수를 줄이고, 정보의 loss는 최대한 줄인다. 우린 encoder(z = f(x))와 decoder(x = g(z))로 나눌 수 있따. ( x = g(f(x))) 로스는 결과와 입력값의 차이를 제곱하는 mse와 비슷한 성격을 가지고 있다. latent space를 그래프로 표시하면 위와 같다. 여기서 점이 없는 부분을 decoder로 돌리면 없는 data를 생산할 수 있다. 그..

인공지능/공부 2023.12.14

설명 가능한 인공지능 CAM - 개념

기존 CNN, FCN은 설명이 불가능하다.(출력만 나온다. API) CNN에서 중요한 부분은 높은 가중치를 받는다. -> 이걸 확인하면 우린 네트워크를 설명할 수 있다. CLASS ACTIVATION MAP - CAM 우린 이러한 이유로 CAM을 만들었고, 사진의 중요한 부분을 찾을 수 있다. 기존 CNN구조는 위와 같이 Featrue extraction -> FCN으로 진행되어 우리가 무것을 어떻게 보고 설명하는지 판단할 수 없다. CAM에선 CNN의 flatten 전에 오메가(학습파라미터)를 사용하여 한개의 필터로 합친다. 그것이 class Activation MAP이다. 그것을 통해 우린 어디가 중요한 부분인 지 알수 있고, 그 map을 통해 classfication도 할 수 있다. 여기서 처음알았..

인공지능/공부 2023.12.14

CNN - 기본 개념

우리는 여태까지 FCN으로 tensorflow에서 Dense만 사용해왔다. 그러나 사진과 같은 경우엔 해상도가 만만치 않아 대충 1000*1000이라고 하면 일렬로 나열하면 1000000이 된다. 이게 Dense layer 하나만 거쳐서 100개로 줄어든다해도 100,000,000 1억개의 파라미터가 존재하게 된다. 이 것은 확실한 컴퓨터소스를 잘 활용하지 못하는 것이다. 그래서 위와 같이 필터를 사용하여 파라미터 9개만 사용하여 피쳐수도 줄이고, 중요한 정보만 가져오는 방식을 만들었다. 피쳐 수를 줄이고 싶지 않을 때 padding을 사용하게 된다. 그럼 0으로 padding 수 만큼 겹겹히 쌓아서 필터를 거쳐도 피쳐 수가 줄지 않게 해준다. 필터 크기가 3이면 패딩은 1, 필터 크기가 5이면 패딩은 ..

인공지능/공부 2023.12.13

TensorFlow - LSTM을 사용하여 apple 주식 예측하기

데이터는 말씀해주시면 언제든지 보내드리겠습니다. import pandas as pd import tensorflow as tf from keras.models import Model from keras.layers import Input, Dense, Flatten, Dropout, LSTM from keras.utils import plot_model, to_categorical import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split data = pd.read_csv('AAPL.csv') 라이브러리와 데이터를 읽습니다. def normalization(x): x_min = ..

인공지능/공부 2023.12.07

TensorFlow - 생성형 인공지능 GAN

여기에 작성하진 않았지만 인코딩 엔코딩으로 모델을 생성하는 것에서 발전된 모델이다. 생성하는 모델이 있고, 그 것을 판단하는 모델이 있다. 생성한 모델에서 나온 것은 판단하는 모델에서 진짜라고 만들어야 하고, 판단하는 모델은 생성된 것은 가짜(0)으로, 진짜 데이터는 진짜(1)로 판단해야한다. 이 과정을 토대로 학습한다. 이번엔 mnist를 활용하여 바로 colab, kaggle 등 사용하기 편한 곳에서 하면 된다. import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Batch..

인공지능/공부 2023.12.07

센서신호, FFT, STFT data를 통해 하중 예측하기 -4 마지막

2023.11.30 - [인공지능/공부] - 센서신호, FFT, STFT data를 통해 하중 예측하기 -3 스케쥴러 센서신호, FFT, STFT data를 통해 하중 예측하기 -3 스케쥴러 2023.11.30 - [인공지능/공부] - 센서신호, FFT, STFT data를 통해 하중 예측하기 -2 LSTM 센서신호, FFT, STFT data를 통해 하중 예측하기 -2 LSTM 2023.11.30 - [인공지능/공부] - 센서신호, FFT, STFT data를 통해 하중 yoonschallenge.tistory.com 이전 코드와 달라진 것은 batchNormalization이 추가되었다. 이 함수의 역할은 밑에 사진과 같다. sigmoid를 사용하다보면 널리 퍼져있는 값들은 무시하는 것이 컸다. 그래..

인공지능/공부 2023.12.05
728x90
728x90