728x90
Boostcamp AI Tech
141

[Boostcamp Day-6] DL Basic - Historical Review

Intro 딥려닝은 다음과 같은 4가지 요소를 기본으로 가지고 있다. Data : 데이터는 해결해야할 문제에 따라서 달라진다. Model : AlexNet, ResNet, LSTM, Deep AutoEncoders, GAN, DenseNet, GoogLeNet Loss : MSE, CE, MLE MSE는 Regression 문제에서 사용 CE는 Classification 문제에서 사용 MLE는 Probabilistic 문제에서 사용 Algorithm : Optimizer로는 SGD, Adagrad, Adadelta, Rmsprop 등이 있으며 Overfitting을 예방하기위해서 Dropout, Early stopping, K-Fold Validation 등을 같이 사용한다. Historical Revi..

Boostcamp AI Tech 2021.08.09

[Boostcamp 선택 과제 - 3] Maximum Likelihood Estimation (MLE)

우선 최대 가능도 추정에 대한 계산과 내용은 이전에 작성한 통계론을 확인하면된다. 최대가능도추정의 실습 $x_0 = 1$라는 샘플을 하나 가지고 있고 $x_0 = 1$일 때, 어떤 평균(모수)에 대해서 가장 큰 가능도를 갖는지 실습하는 문제이다. 그리고 $\mu = -1, 0, 1$ 이렇게 세 가지의 경우 정규분포에 대해 그래프를 그려보는 것이다. Import import numpy as np import scipy as sp import matplotlib.pyplot as plt from scipy.stats import norm #연속확률밀도함수를 계산하는 함수이다. plot plt.figure(figsize=(10,6)) x = np.linspace(-5, 5, 100) # x축 정의 p1 = s..

Boostcamp AI Tech 2021.08.08

[Boostcamp 선택 과제 - 2] RNN Backpropagation 구현

1. Recurrent Neural Networks RNN은 다음과 같은 점화식으로 정의할 수 있다. $$S_k = f(S_{k-1} W_{rec} + X_k W_x)$$ 구조를 확인하면 다음과 같은 그림으로 표현할 수 있다. 2. Backpropagation 실습 중요한 부분은 여기서부터이므로 이전 설명은 생략하였다. Import import numpy as np np.random.seed(seed=1) #일정한 난수 생성 dataset # 샘플 개수 n_samples = 100 # 시퀀스 길이 len_sequence = 10 # 시퀀스 생성 X = np.zeros((n_samples, len_sequence)) for row_idx in range(n_samples): X[row_idx,:] = np..

Boostcamp AI Tech 2021.08.08

[Boostcamp 선택 과제 - 1] Gradient Descent 구현

1. Gradient Descent (1) SymPy library를 사용하여 수학방정식을 사용하였다. Import import numpy as np import sympy as sym from sympy.abc import x from sympy.plotting import plot func sympy의 poly는 함수식을 정의해주고 subs 함수는 다른 변수로 치환거란 값을 대입해준다. 구현한 func 함수는 val 값을 받았을 때의 결과값과 함수식을 반환해준다. def func(val): fun = sym.poly(x**2 + 2*x + 3) return fun.subs(x, val), fun func_gradient func_gradient는 미분한 값과 미분한 식을 반환하는 것을 목적으로 한다...

Boostcamp AI Tech 2021.08.08

[Boostcamp Day-5] Python - Pandas

pandas 설치 conda install pandas series 하나의 Column에 해당하는 데이터의 모음 Object를 말한다. index에 index 이름을 지정해줄 수 있다. a = Seried([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) 지정한 index에 다음과 같이 간단하게 접근할 수 있고 값도 할당해줄 수 있다. a['a'] a['a'] = 2 다음과 같이 시리즈에 대한 정보를 얻을 수 있다. a.values #값만 a.index #index만 a.name #시리즈 이름 a.index.name #index 이름 DataFrame DataTable 전체를 포함하는 Object를 말한다. 다음과 같이 data를 지정해주고 칼럼 값들을 지정해주면 datafram..

Boostcamp AI Tech 2021.08.06

[Boostcamp Day-5] Python - Data Structure

스택 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조이다. LIFO(Last In First Out)이라고 표현하기도 한다. 예를 들어서 책을 쌓았을때 위에 올려져있는 책을 가져오는 것이랑 비슷한 구조라고 생각하면 된다. 큐 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조이다. FIFO(First In First Out)이라고 표현하기도 한다. 예를 들어 버스 대기 줄에서 먼저 서있었던 사람이 먼저 버스를 타는 것과 비슷한 구조라고 생각하면 된다. tuple 값의 변경이 불가능한 리스트이다. 선언시 ()를 사용한다. 연산, 인덱싱, 슬라이싱 등을 동일하게 사용할 수 있다. 튜플은 프로그램을 작동하는 동안 변경되지 않는 데이터를 저장할 때나 사용자의 실수에 의한 에러를 방지하기 위해 사용한..

Boostcamp AI Tech 2021.08.06

[Boostcamp Day-5] Python - Numpy

numpy의 특징은 일반 list에 비해 빠르고, 메모리를 효율적으로 사용할 수 있고 반복문 없이 데이터 배열에 대한 처리를 지원한다. install activate ml conda install numpy import import numpy as np array creation np.array 함수를 사용하여 array를 생성할 수 있다. test_array = np.array([1, 4, 5, 8], float) shape, dtype shape으로 array의 dimension 구성을 확인 할 수 있고 dtype으로 array의 데이터 type을 확인 할 수 있다. 위에서 array를 생성할때 지정해준 float가 바로 dtype을 지정해준 것이다. test_array.shape test_array..

Boostcamp AI Tech 2021.08.06

[Boostcamp Day-5] Python - Data Handling

CSV(Comma Separate Value) 필드를 쉼표(,)로 구분한 텍스트 파일로 간단히 말해 엑셀 양삭의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식이다. csv파일을 notepad로 열어보면 각 데이터가 ","로 이루어져 있는 것을 확인할 수 있었을 것이다. notepad는 textfile을 열어 보듯이 readline()으로 한 줄씩 가져올 수 있다. 하지만 이렇게 사용하면 전처리가 필요하므로 csv 모듈을 import하여 csv 객체를 활용할 수 있다. import csv reader = csv.reader(f, delimeter=',', quotechar='"', quoting=csv.QUOTE_ALL) - delimeter(default=,) : 글자를 나누는 기준 - linete..

Boostcamp AI Tech 2021.08.06

[Boostcamp 과제 - 5] morsecode

해당 과제는 모스 부호를 문자열로 변환하거나 문자열을 모스 부호로 변환해주는 프로그램을 작성하는 과제이다. Import 일단 문자열을 다루는 부분이 많기 때문에 re를 import하여 정규표현식을 사용하였다. import re is_help_command 입력받은 문자를 소문자로 변환 후 'h' 또는 'help'면 True를 반환해준다. def is_help_command(user_input): return user_input.lower() in ['h', 'help'] is_validated_english_sentence 일단 띄어쓰기는 빈 문자열로 변환하였다. 그 후 입력받은 문자에 문자와 .,!?를 제외한 나머지가 있으면 False를 반환해야한다. 또한 .,!?로만 이루어진 문자도 안된다. 따라서 ..

Boostcamp AI Tech 2021.08.06

[Boostcamp 과제 - 4] Baseball

숫자 세 자리를 사용한 야구 게임을 만드는 과제이다. 알 수 없는 에러 처리에 꽤나 시간을 썼던 문제였던 것 같다. Basic 기본적으로 다음과 같이 난수를 생성하는 함수가 들어가 있다. import random def get_random_number()->int: return random.randrange(100, 1000) is_digit 입력받은 문자가 숫자인지 아닌지 판단하는 함수이다. 간단히 isdigit() 함수를 사용하여 해결하였다. def is_digit(user_input_number:str)->bool: return str(user_input_number).isdigit() is_between_100_and_999 입력받은 숫자 문자가 100이상 1000미만인지 아닌지 판단하는 함수로 ..

Boostcamp AI Tech 2021.08.06
728x90