728x90
분류 전체보기
544

[Boostcamp Day-2] Python - String and advanced function concept

문자열(String) 시퀀스 자료형으로 문자형 data를 메모리에 저장하며 영문자 한 글자는 1byte의 메모리공간을 사용한다. 인덱싱(Indexing), 슬라이싱(Slicing) 문자열의 각 문자는 개별 주소를 가지기 때문에 리스트와 같이 인덱싱과 슬라이싱이 가능하다. a = 'abcde' print(a[0], a[4]) a ="Artificial Intelligence and Machine Learning" print(a[:4] 문자열 연산 문자열끼리의 연산은 리스트의 연산과 거의 동일하다고 보면 된다. a = 'abc' b = 'de' print(a + b) # >> abcde print(a * 2) # >> abcabc 문자열 함수 문자열 함수로는 다음과 같은 것들이 있다. 이스케이프 문자 특수 ..

Boostcamp AI Tech 2021.08.03

[Boostcamp Day-2] Python - Conditionals and Loops

조건문이란? 조건문은 말그대로 조건에 따라 특정한 동작을 하게하는 명령어이다. 파이썬은 if, else, elif 등의 예약어를 사용한다. if-else 문법 if : else: 비교연산자 조건문을 사용하기위해 다음과 같은 비교연산자를 사용한다. 조건의 참/거짓 숫자형의 경우 '1 / 0 = 참/거짓'이고 문자형일 경우 ' abc / "" '= 참/거짓이다. 논리 연산자 논리연산자로는 and, or, not이 사용된다. 반복문이란? 반복문도 말그대로 동작을 반복적으로 수행하게 하는 명령문이다. 파이썬에서는 for, while 등이 사용된다. for loop 기본적인 for문으로 다음과 같이 작성할 수 있다. for i [1,2,3,4,5]: print ("hello") for i in "abcdefg":..

Boostcamp AI Tech 2021.08.03

[Boostcamp Day-2] Python - Function and Console IO

함수(Function) 함수란 함수란 어떤 일을 수행하는 코드의 덩어리라고 할 수 있다. 예를 들어 다음과 같은 코드를 함수라고 한다. def cal(x, y): return x * y 1회만 작성해놓으면 반복적인 수행을 할 때 호출만하면 된다. 또한 캡슐화를 통해 인터페이스만 알면 타인의 코드를 사용할 수 있다. 함수의 선언 함수의 선언은 다음과 같은 형식을 가진다. def 함수 이름 (parameter #1, ...,): 수행문 #1(statements) 수행문 #2(statements) return 함수의 형태 함수의 형태는 parameter 유무, 반환 값(return value) 유무에 따라 다르다. Console in/out 터미널은 마우스가 아닌 키보드로 명령을 입력하여 프로그램을 실행하는 ..

Boostcamp AI Tech 2021.08.03

[Boostcamp Day-2] AI Math - 확률론

회귀 분석에서 손실함수로 사용되는 L2-norm(MSE)은 예측오차의 분산을 가장 최소화하는 방향으로 학습하도록 유도한다. 그리고 분류 문제에서 사용되는 교차엔트로피(cross-entropy)는 모델 예측의 불확실성을 최소화하는 방향으로 학습하도록 유도한다. 지금은 그냥 L2-norm(MSE)와 교차엔트로피를 최소화하는 방향으로 학습하도록 유도한다고 생각하자. 그렇다면 이 값들을 최소화하기위해 측정하는 방법을 알아야하는데 이 때 확률론이 필요하다. 확률론 1에서 6까지 숫자가 써있는 주사위의 각 숫자가 나올 확률이 1/6으로 똑같다고 하자. 그리고 이렇게 주사위의 각 면에 쓰인 숫자처럼 어떤 변수 X를 P(X)의 확률로 나오게 할 수 있다면, 거꾸로 말해 어떤 변수 X를 사용할 때 확률 P(X)의 값을 ..

Boostcamp AI Tech 2021.08.03

[Boostcamp Day-2] AI Math - 딥러닝 학습방법

신경망(neural network) 신경망을 이해하기 전에 우선 선형모델에 대해서 알아야한다. 선형 모델은 가중치를 나타내는 W를 X에 곱한 후 y절편이라고 할 수 있는 b(bias)를 더한 식이다. 수식으로 표현하면 X⋅W + b이고 이 식을 바로 'Neuron'이라고 할 수 있다. 활성함수(activation function) 신경망은 위에서 말한 선형모델과 활성함수를 합성한 함수이다. 위 그림에서 σ(z)이 바로 활성함수이고 활성함수는 sigmoid, tanh, ReLU 등이 있다. 우선 sigmoid에 대해서 알아보면 다음과 같은 그래프와 수식으로 되어있다. sigmoid는 0~1을 출력하는 함수인데 이 함수를 조금 더 개선해서 다음과 같은 tanh함수가 생겼다. tanh는 -1~1을 출력하여 s..

Boostcamp AI Tech 2021.08.03

[Boostcamp Day-1] Python - variables(변수)

변수란? 프로그래밍에서 변수는 값을 저장하는 장소이고 메모리 주소를 가지고 변수에 들어가는 값은 메모리 주소에 할당된다. 이것은 폰 노이만(John von Neumann) 아키텍처를 기반한다. 폰 노이만 아키텍처에서는 사용자가 컴퓨터에 값을 입력했을 때 그 값을 먼저 메모리에 저장시키고 CPU가 순차적으로 해석하고 계산하여 사용자에게 결과값을 전달하는 순서이다. 조금 더 이해하기 쉽게 다음과 같이 시각화할 수 있다. 다시 말하면 메모리에 값이 들어가고 주소가 할당되며 해당 주소에 변수 값이 지정된다고 할 수 있다. 변수 이름의 작명법은 다음과 같은 내용이 있다. 1. 알파벳, 숫자, 언더스코어(_)로 선언 가능 2. 변수명은 의미 있는 단어로 표기하는 것이 좋음 3. 변수명은 대소문자가 구분 4. 특별한..

Boostcamp AI Tech 2021.08.02

[Boostcamp Day -1] Python - 코딩 환경

Miniconda 설치 해당 강의의 강사는 miniconda를 선호한다고 한다. 왜냐하면 anaconda를 설치하게 되면 너무 많은 라이브러리가 같이 설치된다는 이유 때문이라고 한다. 설치는 아래 링크에 들어가서 https://docs.conda.io/en/latest/miniconda.html Miniconda — Conda documentation Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages..

Boostcamp AI Tech 2021.08.02

[Boostcamp Day-1] AI Math - 경사하강법

미분 미분이란? 경사하강법을 알아보기 전에 우선 미분에 대해서 설명하겠다. 미분이란 '변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법이다'라고 설명이 되어있다. 하지만 그냥 미분은 '접선의 기울기'를 구하는 것이라고 간단하게 알고 있어도 상관없을 것 같다. 여기서 미분값이 음수일 때 다음과 같이 왼쪽으로 이동하면 함수값이 증가한다. 반대로 오른쪽으로 이동하면 함수값이 감소할 것이다. 반대로 미분값이 양수라면 다음과 같이 오른쪽으로 이동 할 때 함수값이 증가한다. 이 또한 반대로 오른쪽으로 이동하면 함수값이 감소할 것이다. 위에서처럼 이동할 때 함수값이 증가할 때 경사상승법(gradient ascent)라하고 함수값이 감소할 때 경사하강법(gradient de..

Boostcamp AI Tech 2021.08.02

[Boostcamp Day-1] AI Math - 행렬이 뭐에요?

행렬 1. 행렬이란? 행렬(matrix)은 벡터를 원소로 가지는 2차원 배열이다. 수식으로는 다음과 같이 표현할 수 있다. python 코드로는 numpy를 사용하여 다음과 같이 구현할 수 있다. X = np.array([[1, -1, 3], [7, 5, 0], [-2, -1, 2]]) 또한 행렬은 벡터를 원소로 가지는 2차원 배열이며 행(row)과 열(column)이라는 인덱스(index)를 가진다. 벡터가 공간에서의 한 점을 의미했었는데 행렬은 여러 점들을 나타낸다. 행렬은 행렬곱을 통해 벡터를 다른 차원의 공간으로 보낼 수 있다. 간단히 말해 아래 그림과 같이 x에서 z로 보낼 수 있는 연산자(operator)라고 할 수 있다. 여기서 반대로 z에서 x로 보낼 수 있지 않을까 생각해볼 수 있다. 당..

Boostcamp AI Tech 2021.08.02

[Boostcamp Day-1] AI Math - 벡터가 뭐에요?

벡터 1. 벡터란? 대중적으로 벡터는 크기와 방향을 동시에 가지는 물리량이다. 수식으로는 다음과 같이 나타낼 수 있다. 또한 코드로는 다음과 같이 나타낼 수 있으며 리스트(list) 또는 배열(array)이라고 한다. x = [1, 7, 2] x = np.array([1, 7, 2]) 벡터는 공간 상의 한 점을 나타내며 원점으로부터 상대적인 위치를 표현한다. 아래 그림에서는 2차원 공간상의 한 점을 나타내는 것을 확인 할 수 있다. 벡터의 스칼라 곱을 해주면 벡터의 길이가 변하며 수식으로는 다음과 같이 표현할 수 있다. 여기서 α > 1일 경우 길이가 늘어나고 α < 1일 경우 길이가 줄어든다. 만약 α < 0이라면 반대 방향이 된다. 2. 벡터의 연산 벡터의 덧셈과 뺄셈은 다음과 같이 단순히 x의 값과..

Boostcamp AI Tech 2021.08.02
728x90