728x90
Boostcamp AI Tech
141

[Boostcamp Day-4] Python - file_exception_handling_logging

Exception 예외에는 예상 가능한 예외와 예상이 불가능한 예외로 나눌 수 있다. 예상 가능한 예외 예상 가능한 예외는 말 그대로 발생여부를 사전에 인지할 수 있는 예외를 의미한다. 이때 개발자가 반드시 명시적으로 정의해야한다. 예상 불가능한 예외 개발자의 실수로 인해 인터프리터 과정에서 발생하는 예외를 예상 불가능한 예외라고 한다. Exception Handling(예외처리) 예외가 발생할 경우 후속 조치 등 대처 또는 처리를 해야한다는 의미이다. try ~ except #try: # 예외 발생 가능 코드 #except : # 예외 발생시 대응하는 코드 for i in range(10): try: print(10 / i) except ZeroDivisionError: print("Notdivided..

Boostcamp AI Tech 2021.08.05

[Boostcamp Day-4] Python - Module and Project

파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해서 구현되어 있다. 이렇게 다른 사용자가 만든 프로그램을 쓰는 법이 모듈을 import하는 방법이라 한다. Module 모듈은 어떤 대상의 부분 혹은 조각이라고 할 수 있다. 이런 모듈들을 모아서 하나의 큰 프로그램을 개발한다. 또한 이렇게 프로그램을 모듈화시키면 다른 프로그램이 사용하기 쉽다. 예를 들어서 built-in module인 random을 사용하면 다음과 같이 난수를 쉽게 생성할 수 있다. import random random.randint(1, 1000) 파이썬에서의 modeul은 바로 py파일을 의미하고 import 문을 사용하여 이 py파일을 호출할 수 있다. 예를 들어서 a.py에 다음과 같은 코드가 작성되어 있다고 하자. def ..

Boostcamp AI Tech 2021.08.05

[Boostcamp Day-4] Python - Object Oriented Programming

객체지향 프로그래밍(Object-Oriented Programming, OOP)는 객체 개념을 프로그램으로 표현할 수 있다. 여기서 객체는 속성(attribute)와 행동(action)을 가진다. 그리고 속성은 변수(variable), 행동은 함수(method)로 표현할 수 있다. OOP는 설계도에 해당하는 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눌 수 있고 클래스는 붕어빵틀, 인스턴스는 만들어진 붕어빵에 비유할 수가 있다. class class SoccerPlayer(object): def__init__(self, name, position, back_number): self.name = name self.position= position self.back_number= ba..

Boostcamp AI Tech 2021.08.05

[Boostcamp Day-4] Python - Pythonic code

split & join split split은 string type의 값을 '기준값'으로 나눠서 list형태로 반환해주는 함수이다. items ='zero one two three'.split() # 빈칸을 기준으로 문자열 나누기 print(items) #>>> ['zero','one','two','three'] join join은 string으로 구성된 list를 합쳐 하나의 string으로 반환해주는 함수이다. colors =['red','blue','green','yellow'] result =''.join(colors) print(result) # >>> 'redbluegreenyellow' list comprehension 리스트 컴프리헨션은 기존 list를 사용하여 간단히 다른 list를 만드..

Boostcamp AI Tech 2021.08.05

[Boostcamp Day-4] AI Math - RNN 첫걸음

시퀀스 데이터 시퀀스 데이터로 소리, 문자열, 주가 등이 있을 것이고 시간 순서에 따라 나열된 데이터인 시계열(time-series) 데이터 또한 시퀀스 데이터에 속한다. 시퀀스 데이터는 순서가 바뀌거나 과거의 정보에 손실이 발생하면 확률분포도 바뀌게 되는데 가령 예를 들어 '개가 사람을 물었다'와 '사람이 개를 물었다'와 같이 두 개의 문장은 문법적으로 맞지만 의미로는 사람이 개를 물었다라는 말은 맞지 않는다. 이렇게 순서가 바뀌었을 때 예측 분포가 상당히 달라질 수 있다는 의미이다. 이것은 독립동등분포 가정을 위배했다고 말하기도 한다. 독립동등분포라는 것은 각 확률 변수들이 독립적이며 모두 동일한 확률분포를 가지고 있는 것을 말한다. 시퀀스 데이터를 다룰 때 과거의 정보를 가지고 미래에 발생할 데이터..

Boostcamp AI Tech 2021.08.05

[Boostcamp 과제 - 2, 3] Text Processing I, II

Text Processing I 과제 2번은 string을 다루는 방법을 학습하는 목적으로 내었다고 한다. Import 정규표현식을 사용하여 좀 더 간결한 코드를 구현하기위해 re를 import 하였다. import re normalize 먼저 입력받은 문자를 lower()함수를 사용하여 소문자로 만들고 strip()을 사용하여 양쪽의 공백을 제거하고 split()으로 공백을 기준으로 문자를 나누었다. 그 이후에 join을 사용하여 나누어진 문자를 모두 합쳤다. 여기서 strip()은 하지않아도 똑같은 결과가 나온다. def normalize(input_string): return ' '.join(input_string.lower().strip().split()) no_vowels 해당 함수는 모든 모음..

Boostcamp AI Tech 2021.08.05

[Boostcamp 과제 - 1] Basic Math

과제 1번인 Basic Math는 기초적인 간단한 수학연산을 하는 프로그램을 만드는 것이다. Import 쉽게 구현하기위해 numpy를 import하였다. import numpy as np get_greatest 최댓값을 구하는 함수를 구현하는 것으로 numpy의 max함수를 사용하였다. def get_greatest(number_list): greatest_number = np.array(number_list) return np.max(greatest_number) get_smallest 최솟값을 구하는 함수를 구현하는 것으로 numpy의 min함수를 사용하였다. def get_smallest(number_list): smallest_number = np.array(number_list) return ..

Boostcamp AI Tech 2021.08.05

[Boostcamp 1주차] 피어세션과 학습 회고

Day - 1 피어세션 그라운드 룰을 다음과 같이 정하였다. 모더레이터는 3일마다 돌아가면서 맡는다. 피어세션 시작할 때 모더레이터가 자유롭게 강의를 리뷰한다. 강의 들으면서 궁금했던 내용 공유한다. 피어세션 시간 이전에 질문 게시판에 추가해둔다. 불가피한 사정으로 빠져야할 일이 생기면 하루 전에 슬랙으로 공유한다. 팀명을 'AI 9조대'라고 정하였다. 모더레이터 순서를 사다리타기를 통하여 정하였다. 학습 회고 첫 일에 AI Math에 있는 행렬과 벡터, 경사하강법에 관한 강의를 수강하였다. 부스트캠프가 시작하기 전에 프리코스로 들었던 강의였지만 블로그에 정리하려니 몰랐던 부분이 새로 생기고 글을 작성하는데 꽤 오랜 시간을 투자하였다. python은 코딩환경과 같은 기본적인 강의이기에 수월하게 듣고 과제..

Boostcamp AI Tech 2021.08.04

[Boostcamp Day-3] AI Math - CNN 첫걸음

Convolution 연산 Convolution 연산은 고정된 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다. 1차원으로는 다음과 같은 그림으로 표현할 수 있다. 다음과 같이 2차원으로 확인하면 좀 더 이해하기 편할 것이다. Convolution 연산을 다음과 같이 연속적인 공간과 이산적인 공간으로 나누어서 수식을 표현할 수 있다. 함수 g를 신호, 함수 f를 커널이라고 하며 이 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것을 의미한다. 하지만 사실 CNN에서 사용하는 연산은 '-'가 아닌 '+'로 사용한 cross-correlation을 사용한다. 그렇지만 전체공간에서 +인지 -인지는 중요하지 않기때문에 통상적으로 convolu..

Boostcamp AI Tech 2021.08.04

[Boostcamp Day-3] AI Math - 베이즈 통계학

베이즈 정리 베이즈 통계학을 알아보기 이전에 조건부확률의 개념을 이해해야한다. 그런데 이전의 '확률론' 강의로 조건부 확률에 대한 개념을 이해했으니 바로 수식으로 나타내보면 다음과 같다. 여기서 베이즈 정리는 A라는 새로운 정보가 주어졌을 때 P(B)로부터 P(B|A)를 계산하는 방법을 제공한다. 또한 두 확률변수의 사전 확률과 사후 확률 간의 관계를 나타내는 정리로 다음과 같이 사전확률 P(θ)와 가능도(likelihood)확률 P(D|θ)를 안다면 사후 확률 P(θ|D)를 알 수 있다. 각각의 의미를 좀 더 자세히 살펴보면 다음과 같이 정리할 수 있다. 사전확률 : 결과가 나타나기 전에 결정된 원인(θ)의 확률을 의미한다. 다시 말해 데이터가 주어지지 않았을때 원래있던 확률이라고 할 수 있다. 가능도..

Boostcamp AI Tech 2021.08.04
728x90