전체 글

전체 글

    [행운의 번호]

    [행운의 번호]

    [문제] 행운의 번호는 2*n 자릿수를 가진 숫자인데, 왼쪽에서부터 n 개의 숫자의 합이 오른쪽에서부터 n 개의 숫자의 합과 같다. 당신에게 0을 제외한 숫자로만 이루어진 문자열 s가 주어진다. 이 문자열의 부분문자열 중 가장 긴 행운의 번호의 길이를 구하시오. 만약 행운의 번호가 없다면 0을 반환하시오. 풀이 1) - python 더보기 class Solution: def solution(self, s): answer=0 s=[int(i) for i in s] for i in range(len(s)-1): left=i right=left+1 left_ck=right_ck=0 while left>=0 and right=2){ for(int temp=s.length();temp>=len;temp--){ i..

    [책 넣기]

    [책 넣기]

    [문제] 당신은 상자에 책을 넣고 있는데, 상자의 무게 제한을 넘지 않고 최대한 많이 넣어야 한다. 한 상자에 최대한 많이 책을 넣은 다음 상자를 닫고 봉인한 후, 다음 상자에 책을 넣을 수 있다. 책은 차곡차곡 쌓여있는데, 무조건 가장 위에서부터 책을 꺼내야 한다. 책들의 무게는 weights 로써 주어진다. 이 배열의 첫 번째 요소가 쌓여있는 책 중에서 가장 위에 있는 책이고, 배열의 마지막 요소가 가장 밑에 있는 책이다. 상자에 담을 수 있는 최대 무게는 maxWeight 로 주어진다. 책을 전부 담기 위한 상자의 최소 개수를 구하시오. 풀이 1) python 더보기 class Solution: def solution(self, weights, maxWeight): answer=[0] for i i..

    [DL] CNN + a

    [DL] CNN + a

    Summary FCN에서 메모리를 너무 많이 써서 CNN으로 데이터의 특성을 추출한다 torch.optim.SGD에서 S는 Batch_size에 관한 내용이다. 아직까지는 Agumentation을 하지 않았다. 이제 곳 할것임... Neural Network를 어떻게 학습시키는 것이 가장 효과적인 방법인가?? 결과적으로 Accuracy를 높히는게 목적이다... 동일한 Network라도 어떻게 학습 시키느냐에 따라서 성능이 80퍼가 나올수도 있고, 성능이 90, 95%정도씩 차이가 날 수 있다. 예를 들어서 손글씨를 예측하는 경우에, Accuracy가 80 90 나오면, 오 ~ 잘되네 넘어갈텐데, 반면 개발해서 상용화해서 사용할 경우는 말이 달라짐 현업에서는 최대치로 성능을 높혀서 출시해야 하기 때문이다...

    [DL] Basic analysis of using SGD Optimizer with code. (2)

    [DL] Basic analysis of using SGD Optimizer with code. (2)

    In [1]: import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt import warnings # 에러를 제거하는 라이브러리 warnings.filterwarnings('ignore') Hyper-Parameters Setting¶ In [2]: input_size = 1 # 1차원을 의미한다 output_size = 1 # 1차원을 의미한다. num_epochs = 100 # 100번 학습하겠다는 의미이다. learning_rate = 0.001 # 0.001이 가장 대표적인 값이다 In [3]: # Toy dataset x_train = np.array([[3.3], [4.4], [5.5], [6.7..

    [DL] Basic analysis of using SGD Optimizer with code. (1)

    [DL] Basic analysis of using SGD Optimizer with code. (1)

    PyTorch에서의 Gradient Descent에 대해서 간단하게 먼저 살펴본다 파이토치를 이용해서 선형회귀 모델을 먼저 만들고, 경사하강법으로 학습하는 과정을 코드로 작성해보자. 파이토치는 데이터의 기본 단위로 텐서(Tensor)를 사용한다 텐서는 넘파이에서의 array()와 함수와 동일하다. np.array()함수와 동일하다. In [1]: import tensorflow as tf import keras as k import torch # 파이토치 프레임워크를 불러온다. import torchvision # 파이토치 내에서도 vision에 해당하는 모델로서, 이미지 Processing에 특화된 모듈을 말한다. import torch.nn as nn import torchvision.transfor..

    [DL] Back Propagation

    [DL] Back Propagation

    빗살무늬 토기(Convex Function) optimization = 하산법. 가장 아랫부분을 Global Minimum이라고하는데 잘못된? 높은 local Minimum으로 가면 안된다. 그래프에서 삼각형 부분이 local이고, 동그라미 부분이 global이라고 볼수있다. 데이터는 3차원인데, 2 레이어가 존재한다. 쎄타0 , 쎄타1가 있는데 쎄타0 = W1X+b1 라고 하면 >>> 출력 쎄타1 = W2X+b2 >> 입력으로 세타 2가지(입출력)가 들어가므로 레이어가 2개 존재한다고 할 수 있다. J(세타0,세타1) 2레이어임.. 만약 세타2가 있다고 가정하면, 세타2 = 쎄타1의 출력값이 세타2로 입력된다. 세타2의값 = W2(W1X+b1)+b2 W3(세타2의 값) + b3이 된다. Random S..

    [DL] Linear Classification, Forward propagation, Full loss Function

    [DL] Linear Classification, Forward propagation, Full loss Function

    Computer vision 기계의 시각에 해당하는 부분을 연구하는 컴퓨터 과학의 최신 분야이다. 인간이 시각적으로 할 수 있는 일을 기계가 그대로 하는 것이 목표이다. 결론 - 해당되지 않는 파트가 없다... 사물의 모서리는 각 물체의 명암이나, 색이 급격히 변하는 부분을 말한다. 명암, 모서리는 기울기를 말하며 미분을 말한다. 밝기의 기울기 = gradient 하지만 배경또한 같은 색이면 도출하기 힘들 것이다. 즉, 한계점이 있다...... 그래서 나온게 CNN이다... 위 사진은 예전 초기 발명된 CNN로직이다. 얀르쿤, 제프리 힌튼(얀 르쿤의 스승), 조슈아 벤지오(자연어 처리) [얀르쿤 aidev.co.kr/deeplearning/8840] CNN이 만들어진 연도는 1998년도 인데, 빛을 바라..

    [DL] Knowledge and Algorithm Overview

    [DL] Knowledge and Algorithm Overview

    Algorithm = CNN(Convolution Neural Network) 을 말한다. 딥러닝이 사용되고 있는 분야 Segmentation으로 픽셀마다 구분해서 객체를 지정할 수 도 있다. 사람들을 구분 할 수 있지만 사람들의 수 즉, 개채를 구분 못한다. > 자율주행에 필요함 대표적인 Task 1. classification 2. Segmentation 3. Object Detection 4. Image Generation 자율주행

    [ML] Collaborative Filtering (추천 협업 시스템)

    [ML] Collaborative Filtering (추천 협업 시스템)

    아래 두가지로 나뉜다. 1. 사용자 기반(user based) 특정 사용자들의 특성들에 대해서 연결성을 지어낸다. 2. 아이템 기반(item based) 특정한 물건에 대해서 연결성을 지어낸다. 비지도 학습 알로리즘은 같지만 묶는것들 다르게함 비지도 학습은 예측을 못한다 예측을 못한다는건 성능평가를 못낸다고 할 수 있다. 이유는 - target이 없기 때문이다. 대신 비슷한 값끼리 그룹핑을 할 수 있다. 1. 사용자가 선호라는 상품과 유사한 다른 상품을 추천한다. 2. 사용자와 유사한 다른 사용자가 선호하는 상품을 추천한다. 사용자 기반 방식 [단점] 1. 계산복잡성 문제 2. 희소성 문제 유사도 설명 우영이가 아이언맨을 안 봤지만 명재랑 특성이 비슷하게 액션물을 좋아함. 그래서 아마 액셜물을 좋아하는 ..

    [DL] Ensemble, Matrix Confusion and Linear Regression

    [DL] Ensemble, Matrix Confusion and Linear Regression

    Ensemble에서 가장 대표적인 알고리즘은 Random Forest이다. Bagging => Boostrap Aggregation Random Forest에서 Random이 붙은 이유는 DicisionTree를 만들때 랜덤하게 특징을 뽑아와서 만들기 때문에 Random이 붙는다. 부스팅종류는 여러가지가 있는데 그중에 1. Ada 부스팅 2. Gradient 부스팅 이 대표적이다. RandomForest에서 하이퍼 파라미터에는 1. n_estination 은 몇번 돌릴지에 대한 값을 넣는 인자값이다. 디폴트 값이 100이다. 2. max_features = 특징들 예를들어 10을 지정하면 30개가 있으면 10개만 랜덤으로 돌려가면서 뽑아온다는 의미이다. (디폴트 = ) 만일, feature갯수와 같다면 ..

    [DL] SNN의 구조 및 분류와 회귀, 수식적 이해와 작동원리

    [DL] SNN의 구조 및 분류와 회귀, 수식적 이해와 작동원리

    SNN(얕은 신경망) - Shallow Neural Network SNN의 구조 SNN을 이용한 분류와 회귀 잡음이란 - 곡선에 정확이 맞아 떨어 지지 않는 값들을 말한다. 아웃라인이라고 보면 된다. 수식적 이해 a = 활성 함수 summation = 0분터 1까지 wi = 입력 xi = 가중치 b = 편향(bias가 없는 경우가 있긴함.) w^TX = 스칼라 값임. 이탤릭체는 스칼라값 (숫자 하나) 볼드체는 벡터(보통은 열백터) 일반적으로 길게 나열해서 Transpose시켜줌 ah = activation Function 회귀문제의 이해 입력계층과 은닉계층은 Fully Connected와 동일하다고 보면된다. 이진 분류문제의 이해

    [ML] Decision Tree & Ensemble 설명

    보호되어 있는 글입니다.

    [PyTorch] 데이터 불러오기

    [PyTorch] 데이터 불러오기

    https://github.com/pytorch/examples/tree/master/mnist PyTorch Data Preprocess¶ In [4]: import torch from torchvision import datasets, transforms import warnings warnings.filterwarnings('ignore') Data Loader 부르기¶ 파이토치는 DataLoader를 불러 model에 넣음 In [5]: # 사이즈를 넣어줌. batch_size = 32 test_batch_size = 32 In [6]: # DataLoader함수를 사용해서 MNIST의 데이터를 불러옴. # 인자에 디렉토리에 주소값, train 여부 , 다운로드 여부, transform으로 속성을..

    [PyTorch] 기본 사용법

    [PyTorch] 기본 사용법

    PyTorch Basic¶ 넘파이와 토치의 비교 및 기초 사용법 In [1]: import numpy as np import torch import warnings warnings.filterwarnings('ignore') In [2]: np.arange(9) Out[2]: array([0, 1, 2, 3, 4, 5, 6, 7, 8]) In [3]: nums = torch.arange(9) nums Out[3]: tensor([0, 1, 2, 3, 4, 5, 6, 7, 8]) In [4]: #토치 모양 보기 nums.shape Out[4]: torch.Size([9]) In [5]: #토치 타입보기 type(nums) Out[5]: torch.Tensor In [6]: # 넘파이로 변환 ..

    [ML] 타이타닉 생존자 예측해보기

    보호되어 있는 글입니다.

    [ML] 타이타닉 생존자 예측하기 및 설명

    보호되어 있는 글입니다.

    [ML] SVM을 활용한 선형, 비선형 데이터를 분리 cost, gamma searching

    [ML] SVM을 활용한 선형, 비선형 데이터를 분리 cost, gamma searching

    선형으로 분리되는 데이타 실습하기¶ 전반적인 Procssing¶ 1. Module Configuration¶ import sys, os import matplotlib.pyplot as plt import pandas as pd import sklearn.datasets import numpy as np from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.model_selection import GridsearchCV 2. Data Loader¶ X, labels = read_data('../data/points_class_0.txt','../data/points_class_1.txt') or i..

    [DL] CNN 모델 구조

    [DL] CNN 모델 구조

    Feature Extraction(특징을 추출하는 부분)에는 Convolution, ReLU, Max Pooling 이 3가지의 레이어로 층층이 쌓여있다. Fully Connected Layer에서는 결과를 예측해 낸다고 보면된다. 예를 들어 앵무새를 비유하면 얼굴의 모양, 색상 등등의 특징들, 패턴들을 Convolution이 가져온다. 그리고 점점더 갈 수록 디테일 하게 특징중에서 특징을 뽑아서 거쳐가는게 CNN이라고 볼 수 있다. 이후, CNN에서 패턴(특징)들을 가져와서 Fully Connected Layer에서 결과를 예측해 볼수 있다. 특징을 뽑는 과정은 방법은 많지만, 위의 3가지방법을 주로 사용한다. Filter bank에서 특징들을 Input image에 합성하면 Feature maps의 ..

    [DL] Pytorch 연구 모델

    보호되어 있는 글입니다.

    [ML] SVM을 활용한 데이터 분석

    [ML] SVM을 활용한 데이터 분석

    1. Import module¶ In [1]: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns# seaborn 그래프 라이브러리 import sklearn.datasets from sklearn.svm import SVC # SVC 함수의 SVM 라이브 러리 from sklearn.model_selection import train_test_split # 트레이닝과 테스트의 데이터또는 컬럼을 나눠주는 라이브러리 from sklearn.metrics import accuracy_score # 머신러닝에서 결과점수를 연산해주는 라이브러리 import warnings# 에러를 제거하는 라이브러리 warnings.filterwa..

    [seaborn] seaborn을 이용한 시각화

    [seaborn] seaborn을 이용한 시각화

    http://seaborn.pydata.org/examples/index.html 1. sns의 기본¶ In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import DataFrame, Series import seaborn as sns In [2]: ts = Series(np.random.randn(1000), index = pd.date_range('1/1/2000', periods=1000) ) ts Out[2]: 2000-01-01 1.690774 2000-01-02 1.144960 2000-01-03 0.392472 2000-01-04 -0.262784 2000-01-0..

    [Matplot] Matplot Lib를 이용한 시각화

    [Matplot] Matplot Lib를 이용한 시각화

    Matplot Lib을 이용한 시각화¶ 파이썬으로 데이터 분석한 결과를 시각화 하는데 많이 사용한다 파이썬에서 2D형태의 그래프 이미지등을 그릴때 사용한 것으로 실제 과학컴퓨팅 분야나 인공지능 분야에서 많이 사용한다 다양한 모듈이 있는데 그중에서 가장 많이 사용하는 서브모듈이 pyplot이다. In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import DataFrame import seaborn as sns 1. 산점도 그래프 그리기¶ 산점도는 scatter() 함수를 사용해서 시각화한다. 산점도는 x,y축에 해당하는 데이터의 상관관계를 표시할때 사용하며 점들이 흩어져 있는 분포를 확인할수..

    [Pandas][Numpy][seaborn] 2019년 서울 특별시 주유소 판매가격 분석 및 표 만들기

    [Pandas][Numpy][seaborn] 2019년 서울 특별시 주유소 판매가격 분석 및 표 만들기

    데이터 분석¶ 데이터 정보 : 2019년도 서울에 위치하고 있는 주유소의 위치정보 및 일간 유가 (1) 고급휘발유 0인 값 108256개 / 실내등유 0인 값 110560개 / 전체 데이터 181714개 즉 고급휘발유와 실내등유를 보유하지 않은 주유소가 많다. (2) 휘발유나 경유가 0인 데이터는 전체 데이터 대비 비율이 적기때문에 바로 삭제처리 (3) 도로명 column 추가 (4) 웹 데이터 크롤링 (5) 상,하반기 결합 (6) 기간 컬럼 dataTime으로 형변환 > 년 월 일 요일 컬럼 생성 In [1]: import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt %matplotlib inl..

    [ML] SVM - 지도학습 분류모델 실습

    [ML] SVM - 지도학습 분류모델 실습

    분류하기전 비교할 대상을 데이터로 만들어야한다. 후 아래 데이터를 만들어서 비교할 대상을 적어 넣는다. feature가 많으면 작업이 오래 걸린다. 반면에 데이터(row)가 많으면 정확도가 높아짐~!

    [ML] SVM - 지도학습 분류모델

    [ML] SVM - 지도학습 분류모델

    SVM(Support Vector Machine) 주로 분류할때 사용된다 classification SVM은 선형으로 두 집단을 분류한다. (왼)마진 좋게 아웃라이어 나옴 코스트 낮음 - 일반적임. (오)마진 안 좋게 아웃라이어 안생김 코스트높음 - 오버피팅이 많이 나오는 경우이다 차원을 다르게 하면 선형으로 나눌수 있다. 코스트는 구별하는 선, 감마는 개별데이터마다 결정선을 지정하는 것에 초점을 둔다. 두 값 모두 커질수록 알고리즘의 복잡도는 증가한다. overfit을 줄이는 것 사이의 균형을 잘 맞춰야 한다. (tip : 코스트만 기본 값으로 둔다 ) 머신은 숫자만 인식한다. SVM패턴 특징 1. 스스로 좌표를 설정한다. 설명 : 특징이 많으면 많은 만큼 어렵다. accuracy가 낮게 나온다. 데이..

    [ML][DL] 전반적인 이해도 및 로직 설명, 자료

    [ML][DL] 전반적인 이해도 및 로직 설명, 자료

    PDF 파일 내용정리 머신러닝은 모델과 같다고 볼 수있다. 1. 데이터 준비 (몇만개) 2. 모델설계 (데이터 학습) - 어떤 모델로 설계할지만 결정하고 데이터를 받아옴 3. 미지의 데이터를 넣음 (넣었을때 잘 학습되었나 확인) 4. 데이터를 모델에 넣었을때 올바른지 판단 (정확도 측정) 사용할 모델 4가지. 프로그래밍과 머신러닝의 차이점 비지도 학습과 지도학습 1. 데이터로 학습한다. 1. 정답의 유무 (비지도 = 유사성으로 판단한다.) 지도학습 = 머신러닝이 학습할때 답을 함께 제공해주는 것 비지도 학습 = 머신러닝이 학습할때 답을 제공하지 않고 그냥 학습하는 것 지도 학습과 비지도학습을 잘 이해하려면 머신러닝 학습을 어떤식으로 하냐는 것을 먼저 이해해야한다. 머신러닝은 일반적으로 아래의 절차로 학습..