Ai(16)
-
학부 졸업 기념, 개념 다시 되짚어보기
인스타보다가 보이저엑스라는 회사에서 인공지능 및 프로그래밍 관련해서 기술질문 써놨길래 지금까지 공부했던 기억을 바탕으로 리프레쉬할겸 한번 풀어보았다. 프로그래밍 인턴 질문 (프로그래밍 질문: 15개) PNG와 JPG의 차이점은? PNG → 비손실압축 (원본 훼손X) JPG → 손실압축 (원본 훼손O) JPEG → 사람이 모를정도로만 원본 훼손(압축효과극대화알고리즘) Dynamic Programming이란? 동적계획법, 큰문제를 작은문제로 나눠 푸는것. 복잡한 문제 나오면 여러개의 서브 문제로 나눠서 푸는데, 부분 반복 문제와 최적 부분 구조를 가지고있는 알고리즘 풀 때 사용. 부분 반복 문제→어떤 문제가 여러개의 부분문제로 쪼개질 수 있는 문제 (ex. N번째 피보나치 수 구하기 → N-1번쩨 / N-2..
2022.07.11 -
Neural Style Transfer - Project
2021.10.07 - [Hi/Artificial_Intelligence] - Neural Style Transfer Neural Style Transfer What is NST? Style transfer란, 두 영상(content image & style image)이 주어졌을 때 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 우리가 원하는 style image와 유사하게 바꾸는 것.. forbetterdays.tistory.com 기존의 NST 모델 공부에서 한단계 더 깊게 하여 프로젝트에 사용하였습니다. What is NST (Neural Style Transfer)? - Style transfer란, 두 영상(content image & style image)이..
2021.11.20 -
Neural Style Transfer
What is NST? Style transfer란, 두 영상(content image & style image)이 주어졌을 때 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 우리가 원하는 style image와 유사하게 바꾸는 것을 말함. Style transfer refers to changing only the style to the style image we want while keeping the main form of the image similar to the content image when two images are given. Style Transfer, image-to-image translation, 또는 texture transfer 등으로 불리는..
2021.10.07 -
[Kaggle] 간단한 HousePrices 예측해보기
2주 전에 캐글문제 하나 풀고싶어서 주택가격예측 대회에 들어갔다. 들어가서 그냥 평균값으로만 전부 때려박으면 몇점나올까 궁금해서 해봤더니 0.4점나오길래, 1점이 만점이 아닌가 봤더니 0점에 근접할 수록 높은 점수였다. 아 그렇구나 하고 종료했었는데, 원래 하던거 끝난 기념으로 3시간동안 노래들으면서 끄적여봤다. import numpy as np import pandas as pd import os for dirname, _, filenames in os.walk('./house_prices'): for filename in filenames: print(os.path.join(dirname, filename)) train_data = pd.read_csv('./house_prices/train.csv'..
2021.08.13 -
depthwise separable convolution(깊이별 분리 합성곱)
SeparableConv2D 입력 채널별로 따로따로 공간 방향의 합성곱 수행 후, 1*1 합성곱 (점별 합성곱)으로 출력 채널을 합치는 것. 이로 인해 공간 특성의 학습과 채널 방향 특성의 학습을 분리하는 효과를 얻을 수 있음. 모델 파라미터와 연산의 수를 크게 줄여주어 더 작고 빠른 모델을 제작할 수 있음. 여기서 1 * 1 합성곱이란, 1 * 1 크기의 Convolution Filter 사용한 Convolution Layer를 말하는데, Channel / Spatial의 특성파악에 도움이 된다. 이렇게 1*1 합성곱을 쓰면 파라미터 수가 확연히 줄게 된다. 일반적으로 합성곱에서 channel을 크게 주면 파라미터 수가 급격히 증가하는데, 1*1 합성곱을 사용하면 효율적으로 모델을 구성할 수 있음. 즉..
2021.07.07 -
RNN, CNN
기존 Fullly Connected Layer와 CNN( Convolutional Neural Network)와 다른점 이미지 공간 정보를 유지한 상태로 학습이 가능하게 만든 모델 각 레이어의 입출력 데이터의 형상을 유지한다. 여러 개의 필터로 각 이미지의 특징을 추출하여 학습한다. 이미지 공간 정보를 유지하여 인접한 다른 이미지들과의 특징을 효과적으로 인식한다. 필터는 공유 파라미터이기에 기존 신경망보다 학습에 사용되는 파라미터가 적다. 컨브넷은 지역적이고 평행 이동으로 변하지 않는 특성을 학습함. CNN의 구조 이미지의 특징을 추출하는 부분인 Convolution Layer와 Pooling Layer, 클래스를 분류하는 Flatten Layer 부분으로 이루어져 마지막 Fully Connected N..
2021.06.12 -
[CNN] Dogs vs Cats
캐글(Kaggle)에서 데이터셋을 전부 다운받고, small폴더를 만들어서 train data, validation data, test data를 강아지와 고양이 각각 1000장, 500장, 500장을 분리해 총 4천장에 사진 데이터를 가지고 실습을 하였다. 그리고 가져온 사진 데이터들을 네트워크에 넣기 위해 부동 소수 타입의 텐서로 전처리 한다. 케라스에서 제공되는 ImageDataGenerator은 이미지 파일을 전처리된 배치 텐서로 바꾸어주는 제너레이터를 만드는 클래스이다. 즉, 사진 파일을 읽고, 타입을 RGB 픽셀 값으로 디코딩하고, 부동 소수타입의 텐서로 변환하여 픽셀값의 스케일을 0~255에서 0~1로 조정하는 과정을 쉽게 만들어주는 명령어이다. 모든이미지를 float형으로 255로 나누어 ..
2021.05.13 -
[AI] Boston_housing :(Linear regression)
from keras.datasets import boston_housing import numpy print(numpy.shape(boston_housing.load_data())) (train_data, train_labels), (test_data, test_labels) = boston_housing.load_data() print(len(train_data)) print(len(train_labels)) print(len(test_data)) print(len(test_labels)) print(numpy.shape(train_data)) print(numpy.shape(train_labels)) print(numpy.shape(test_data)) print(numpy.shape(test_lab..
2021.05.09 -
Artificial Intelligence
optimizer, loss, metrics Optimizer는 학습 진행을 결정하는 방식으로 가중치를 어느 정도로 이동할 것인지를 결정하는 방법이다. Loss Function을 기반으로 네트워크가 어떻게 업데이트될건지 설정하고, 네트워크를 구성하는 알고리즘을 최적화 시킨다. 옵티마이저에는 Adam, RMSprop, SGD 등이 있다. Loss Function은 예측값과 실제값간의 차이를 표현한 수식으로, 학습에 사용되는 오차값인 피드백 신호를 정의하는 함수이며, 훈련을 하는 동안에 최소화가 될 값을 뜻한다. 주어진 문제에 대한 성공지표라고 말한다. 로스에는 binary_crossentropy, categorical_crossentropy 등이 있다. Metrics는 실제 화면상에 출력되는 값을 표현하는..
2021.04.23 -
[Reuters] single-label, multiclass classification AI
#시작 로이터(Reuters) 뉴스 데이터셋으로 단일 레이블 다중 분류 문제 다루기 목적 : 텍스트 분류 11258개의 기사와 46개의 뉴스 카테고리 분류. 각 토픽은 최소 10개이상의 샘플이 있음. from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words = 10000) #로이터 데이터셋 가져오고 각 데이터를 변수에 넣어줌 #훈련용데이터와 검증용 데이터 몇개로 분류되었는지 출력. print(len(train_data)) print(len(test_data)) print(train_data[1]) #2차원 배열로 들어가있음 print(train_labe..
2021.04.02 -
[IMDB] Sentiment Analysis AI
# IMDB란 인터넷 영화 데이터베이스(Internet Movie Database, 약칭 IMDB)이다. 우리가 사용할 데이터는 영화 사이트 IMDB의 리뷰 데이터이다. 이 데이터는 리뷰에 대한 텍스트와 해당 리뷰가 긍정인 경우 1, 부정인 경우 0으로 표시한 레이블로 구성된 데이터이다. 이 데이터셋은 케라스에서 import하여 바로 사용할 수 있다. 이 데이터셋을 사용하여 머신러닝을 제작할 것이다. 목적은 텍스트 분류, 그 중에서도 감성 분류를 연습하기위함에 있다. 여기서 감성 분류(Sentiment Analysis)란, 텍스트 안에 들어있는 여러가지 주관적인 정보(의견, 감성, 평가, 태도 등)을 머신러닝을 돌려 분석하는 것이다. #입력 데이터 불러오기 #케라스의 데이터셋에 있는 IMDB를 불러온다...
2021.03.25 -
Dataset 및 데이터전처리 기초 2021.03.19
-
[GAN] 적대적 생성 신경망 <숫자생성AI> 제작
숫자 생성 인공지능 원리 생성 신경망 중 GAN을 이용함. GAN (Generative Adversarial Network) 적대적 생성 신경망. 2개의 신경망으로 이루어져 있음. 판별자 신경망과 생성자 신경망. 생성자는 진짜같은 가짜를 생성함. 판별자는 진짜그림과 생성자가 만든 가짜 그림을 구별 가능. 두 신경망은 목표가 있음. 생성자 : 판별자가 자신이 만든 그림을 진짜처럼 생각할 정도의 그림을 그림. 판별자 : 생성자가 만든 그림을 진짜인지 가짜인지 전부 구별해야함. 이제 두 신경망은 서로 이기기 위해 학습을 시작함. 이렇게 두 개의 신경망을 사용하여 이러한 원리로 생성해 내는 기법이 GAN(적대적 생성 신경망)임. 개발 환경 세팅 from keras.models import Model, Seque..
2021.02.21 -
[RNN] 전염병(covid-19) 예측 인공지능 제작
colab.research.google.com/drive/1925aJnKBtplTrvAv0TfYbdjumcEnAPON?usp=sharing Google Colaboratory colab.research.google.com 코랩으로 작성한 원문입니다. # 개발 시작 이전 며칠간의 확진자 수를 입력받아 다음 날의 확진자 수를 예측하는 방법. 3일 동안의 확진자 수 보고, 그 다음날 확진자 수가 어떻게 될지 학습함. ex) 1, 2, 3 일 차 확진자 -> 4일차 확진자 예측. 연속된 데이터의 형태에서 그 패턴을 찾아냄. 순환 신경망 방식 (RNN). (RNN = Recurrent Neural Network, 순환적 구조, 입출력을 시퀀스 단위로 처리.) from keras.models import Seque..
2021.02.06 -
[TensorFlow] 숫자 인식 AI 제작 (2)
colab.research.google.com/drive/1vcBfl192NDGJ2_c2u01tAa65NGSJmrw8?usp=sharing Google Colaboratory colab.research.google.com 원문입니다. 코랩으로 보는거 추천. (이전글) 2021/01/28 - [Hi/AI] - [TensorFlow] 숫자 인식 AI 제작 (1) # 모델설계 4개의 층으로 만들거임. 입력층, 은닉층, 은닉층, 출력층 입력층 뉴런의 수는 28 * 28이니 784임. 28 * 28개의 픽셀로 이루어진 숫자를 한줄로 바꾼거임. 첫번째 은닉층의 노드 수는 512개, 두번째 은닉층의 노드 수는 256개, 세번째 결과층의 노드수는 10개로 설정함. (마지막은 0~9이니 10개) 활성화 함수는 렐루(Re..
2021.01.30 -
[TensorFlow] 숫자 인식 AI 제작 (1)
colab.research.google.com/drive/1vcBfl192NDGJ2_c2u01tAa65NGSJmrw8?usp=sharing Google Colaboratory colab.research.google.com 원문입니다. 코랩으로 보는거 추천. %tensorflow_version #텐서플로우 라이브러리 설치되어있는지 확인. import keras 케라스는 텐서플로를 이용하기 더 쉽게만들어주는 도구임. 심층 신경망을 만들기 위한 텐서플로, 테아노, CNTK와 같은 도구를 더욱 쉽게 사용할 수 있게 도와주는 도구임. 따라서 케라스를 사용하려면 먼저 텐서플로 라이브러리를 불러온 상태여야함. from tensorflow.keras.models import Sequential from tensorfl..
2021.01.28