반응형

Study/AI 20

[Pytorch] 모듈과 데이터셋 + 데이터로더

torch.nn.Module 딥러닝을 구성하는 Layer의 base class input, Output, Forward, Backward 정의 학습의 대상이 되는 parameter(tensor) 정의 nn.Parameter Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 때는 required_grad = True로 지정되어 학습 대상이 되는 Tensor 보통 우리가 직접 지정할 일은 잘 없고 대부분의 layer에는 weights 값들이 지정되어 있음. class MyLinear(nn.Module): def init (self, in_features, out_features, bias=True): super(). init () self.in_features = in_featur..

Study/AI 2023.03.19

[Pytorch] 파이토치 기초

프레임워크 딥러닝 프레임워크는 텐서플로우, 케라스, 파이토치 등등 엄청나게 많다 사실상 텐서플로우와 파이토치가 표준으로 자리 잡고 있다. 파이토치는 페이스북에서 만들었고, 텐서플로우는 구글에서 만든 프레임워크이다. Keras TensorFlow Pytorch Level-of-Api high-level-api how+low level api lower-level api Speed slow high high Architechture simple complex complex Debugging 디버그 필요없음 디버그가 어려움 디버그가 쉬움 데이터셋 느리고 작음 빠르고 큼 빠르고 큼 사용성 유저친화적 어려운 api 파이썬에 통합된 언어 인기도 1 2 3 그래프 연산 Static-graphs Static-graph..

Study/AI 2023.03.19

[AI] 딥러닝 기초

1. 신경망 신경망은 선형모델과 활성함수를 합성한 함수이다. 선형함수로 출력된 값을 활성함수로 씌운 값이 잠재벡터(뉴런)이라고 한다. 이를 이용한 뉴런 네트워크를 perceptron이라고 한다. 다층 퍼셉트론은 된 함수이다. 2. 소프트맥스 소프트맥스 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산이다. 분류 문제를 풀 때 선형모델과 소프트맥수 함수를 결합하여 예측한다. 3. 활성함수 활성함수는 비선형함수로서 선형모델로 나오는 출력물 원소에 적용하는 것 소프트맥스는 출력물 모든 것을 고려한다면, 활성함수는 특정 주소에 있는 값만으로 출력하기에 실수값만 받음 이렇게 딥러닝에서는 활성함수를 통해 선형모델의 결과를 비선형으로 바꿀 수 있고 변경시킨 벡터를 잠재벡터라고 부르고 “뉴런”이라고 부르고..

Study/AI 2023.03.12

[Math] 경사하강법

1. 미분, 경사하강법 미분(differentiation)은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법이다. 미분은 함수 f의 주어진 점 (x,f(x)) 에서의 접선의 기울기를 구한다. 한 점에서 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함수값이 증가하는지/감소하는지 알 수 있다. 미분값을 더하면 경사상승법(gradient ascent)이라 하며 함수의 극대값의 위치를 구할 때 사용한다 미분값이 음수면 x+f’(x) < x는 왼쪽으로 이동하여 함수값이 증가한다. 반대로, 미분값을 빼면 경사하승법(gradient desscent)이라 하며 함수의 극소값의 위치를 구할 때 사용한다 미분값이 음수면 x-f’(x) < x는 오른쪽으로 이동하여 함수값이..

Study/AI 2023.03.12

[Math] 벡터와 행렬

벡터 벡터는 숫자를 원소로 가지는 리스트 또는 배열이다. 벡터는 공간에서 한 점을 나타낸다. 벡터는 원점으로부터 상대적 위치를 표한한다. 벡터에 숫자를 곱해주면 길이만 변한다. 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈을 계산할 수 있다. 두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현한다. 벡터의 노름 L1 노름은 각 성분의 변화량의 절대값을 모두 더한 것이다. L2 노름은 피타고라스 정리를 이용해 유클리드 거리를 계산한 것이다. 두 벡터 사이의 거리를 이용하여 각도도 계산 가능할까? L2 노름을 이용하여 각도를 제 2 코사인 법칙을 이용하면 계산 가능하다 L1 노름에서는 각도를 계산할 수 없다. 4.행렬 행렬은 벡터를 원소로 가지는 2차원 배열이다. 행렬은 행(row)와 열(column)이라는..

Study/AI 2023.03.12

[AI] 넘파이와 판다스

넘파이 일반 리스트에 비해 빠르고, 메모리 효율적 반복문 없이 데이터 배열에 대한 처리를 지원 차원 1차원 [1,2,3,4] (4,) 로 표현 - 컬럼의 갯수 2차원 [[1,2,3,4],[1.2.3.4],[1.2.3,4]] (3,4) : 위에서 4가 한칸 밀리고 새로운 차원인 3이 앞으로 [[[1,2,3,4],[1.2.3.4],[1.2.3,4]] [[1,2,3,4],[1.2.3.4],[1.2.3,4]] [[1,2,3,4],[1.2.3.4],[1.2.3,4]] [[1,2,3,4],[1.2.3.4],[1.2.3,4]] ] 3차원 (4,3,4) 위에서 2차원에서 앞에 새로운 차원 4가 생성 나머지 밀림 reshape 넘파이의 배열을 바꿔줌. -1을 넣으면 나머지를 고려하여 알아서 shape 지정 flatten..

Study/AI 2023.03.12

[Python] 예외 처리와 파일 및 로그

파이썬의 예외 처리와 파일 및 로그 다루기 1) try~except 문법 try: 예외 발생 가능 코드 except : 예외 발생시 대응하는 코드 finally: 예외 상관없이 실행되는 코드 예외처리할때 에러타입을 적어주는 것이 좋다. 적어주지 않고 전체처리하면 다른사용자가 보기 이해하기에 어렵다 파일이 비어있는 경우 2) raise 구문 필요에 따라 강제로 expcetion 발생 잘못된 값을 입력했을때 다른 리소스를 잡아먹지 않게하기 위해 raise를 발생시켜 사전에 차단 3) assert 구문 특정 조건에 만족하지 않을 경우 예외 발생 assert 뒤에는 True나 False가 나오게 하고False가 나오면 예외처리 4) 파일의 종류 text 파일 문자열 형식으로 저장된 파일 메모장으로 열면 확인 가..

Study/AI 2023.03.12

[Python] 객체 지향, 모듈 및 패키지

1. 객체 지향 프로그래밍 1) 객체 객체 : 실생활에서 일종의 물건. 속성과 행동을 가짐 OOP는 이러한 객체 개념을 프로그램으로 표현 속성은 변수(variable), 행동은 함수(method)로 표현됨 OOP는 클래스(class)와 인스터스(instance)로 나눔 2) 객체 지향 프로그래밍의 약속 snake_case : 띄워쓰기 부분에 “_”(언더바) 추가. 파이썬 함수나 변수명에 사용 CamelCase : 띄어쓰기 부분에 대문에. 파이썬 Class명에 사용 파이썬에서 __의 의미(언더바2개) : 특수한 예약함수나 함수명 변경(맨글링)으로 사용 3) 속성 Attribute 추가는 __init__, self와 함께쓴다 __init__는 객체 초기화 예약 함수이다 __str__ : 해당 클래스를 문자열..

Study/AI 2023.03.12

[Python] 파이썬의 기초문법

1) 변수 변수란 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간이고 선언 되는 순간 메모리 특정영역에 물리적인 공간이 할당된다. 즉, a = 8의 의미는 “A는 8이다”가 아닌 A라는 이름을 가진 메모리 주소에 8을 저장하라이다. 자료형 : interger,float,string,boolean 리스트 : 시퀀스 자료형으로 여러 데이터들의 집합 인덱싱 : 리스트에 있는 값들은 주소를 가지는데 이 주소를 인덱싱이라 함. 슬라이싱 : 리스트의 값들을 잘라서 쓰는 것 패킹 : 한 변수에 여러 개의 데이터를 넣는 것 언패킹 : 한 변수의 데이터를 각각의 변수로 반환 2) 함수와 콘솔 함수란 어떤 일을 수행하는 코드의 덩어리 def f(x): return 2*x+7 f(2) = 11 parameter : 함..

Study/AI 2023.03.12

[Python] 파이썬 개요와 환경설정

1) 파이썬의 특징 파이썬은 플랫폼 독립적으로 운영체제에 상관없이 한번 프로그램을 작성하면 사용가능하다. 인터프리터 언어로 소스코드를 실행시점에 해석하여 컴퓨터가 처리한다. 객체 지향적 언어로 실행 순서가 아닌 단위 모듈 중심으로 프로그램을 작성한다. 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)를 가지고 있다. 동적 타이핑 언어로 프로그램이 실행하는 시점에 프로그램이 사용해야할 타입을 결정한다. 2) 코딩환경 파이썬 인터프리터 : python, anaconda 코드 편집기 : 메모장 , Vl editor, VS code, PyCharm 웹 기반 인터렉티브 편집기 : Jupter, colab Jupyter는 대화형 파이썬 셸로 미디어, 텍스트, 코드, 수식 등을 ..

Study/AI 2023.03.12
반응형