본문 바로가기

AI22

파이썬(Python) - Iterator 사용하기 Iterator란? Iterator는 값을 차례대로 꺼낼 수 있는 객체(Object)이다. 예를 들어 for i in range(100): 구문에서는 0~99 까지의 연속된 숫자를 보여주는데, 사실 숫자를 모두 만드는 것이 아니라 0~99 까지 값을 차례대로 꺼낼 수 있는 iterator를 만든 후 이를 반복하면서 숫자를 하나씩 꺼내는 것이다. 만약 연속된 숫자를 미리 만들면 숫자가 적을 때는 상관 없지만, 아주 많을 때는 메모리를 많이 사용하게 되어 성능에 불리해진다. 그래서 파이썬에서는 iterator만 생성하고 값이 필요한 시점이 되었을 때 값을 만드는 방식을 사용한다. 즉, 데이터 생성을 뒤로 미루는 것이며 이러한 방식을 지연 평가 (lazy evaluation) 이라고 한다. Iterable이란.. 2023. 5. 30.
Deep Neural Network (DNN) Deep Neural Network (DNN) DNN은 MLP에서 다소 확장된 개념으로 다수의 hidden layer를 가지고 있는 인공신경망이다. 즉, DNN에서 “Deep”은 hidden layer가 많다는 의미이다. Layer수가 많아지면서 데이터의 feature(특징)를 더 잘 추출할 수 있다. 아래 그림에서 각 원은 노드(Node)라고 부르는데, Input Node는 Input data의 변수의 수가 되며 Hidden Layer와 Node는 사용자가 지정해야 할 Hyperparameter, 그리고 Output Node의 수는 풀고자 하는 문제에 따라 달라진다. 예를 들어 숫자를 구분하는 문제라면 0~9까지 총 10개로 구분 가능하므로 Output Node의 수는 10이 된다. MPL 소개 : h.. 2023. 5. 17.
퍼셉트론(perceptron)과 Multilayer Perceptron(MLP) 퍼셉트론 (perceptron) 퍼셉트론이란? 퍼셉트론은 Frank Rosenblatt가 1957년에 고안한 알고리즘이다. 다수의 신호를 입력받아 하나의 신호를 출력하는 feedforward 형태의 네트워크로 선형분류기로도 볼 수 있다. 인간의 뉴런은 dendrite를 통해 입력 받은 신호가 어떠한 임계치(threshlod)를 넘어서면 활성화(activate)되는 동작을 하는데 이 현상을 컴퓨터로 구현한 것이 퍼셉트론이다. 퍼셉트론의 개념을 도식화하면 다수의 입력 값 $x$가 있을 때, 중요도에 따라 각각의 입력 값에 $w$(weight)를 곱해 준 후 bias를 더한다. 그 결과 값들을 모두 더하여 하나의 값($z)$으로 만든다. 마지막으로 $z$값을 0과 1로 반환해 줄 수 있는 활성 함수(Activ.. 2023. 5. 16.
Computer Vision (컴퓨터 비전) 연구의 역사 A brief history of computer vision and deep learning 컴퓨터 비전 연구의 시작 Hubel and Wiesel, 1959 - 고양이 실험 고양이의 시각 피질 실험에서 고양이 시야의 한 쪽에 자극을 주었더니 전체 뉴련이 아닌 특정 뉴런만 활성화 물체의 형태와 방향에 따라서도 활성화되는 뉴런이 다름 → 시각 정보가 뇌에서 어떻게 처리되는지에 대한 이해 Larry Roberts, 1963 사진 정보를 컴퓨터로 가져오는 방법에 관한 연구 The Sight System을 통해 물체를 비교적 정확하게 인식 → 초기 컴퓨터 비전 분야에서 3차원 물체 인식을 위한 중요한 기반 제공 David Marr, 1970s Primitive Representations : 시각적 자극을 간.. 2023. 5. 16.
파이토치(PyTorch) - Tensor 텐서(Tensor) 행렬을 2차원 배열이라 표현한다면, 텐서는 그 이상의 배열이라고 표현할 수 있다. PyTorch에서는 텐서를 사용하여 모델의 입력과 출력뿐만 아니라 모델의 매개변수를 부호화(encode) 한다. GPU나 다른 연산 가속을 위한 특수한 하드웨어에서 실행할 수 있다는 점을 제외하면, 텐서는 NumPy의 ndarray와 매우 유사하다. 즉, 텐서는 GPU를 사용하기 위해서 필요하다. 텐서 초기화 텐서는 여러가지 방법으로 초기화 할 수 있다. 데이터로부터 직접 생성 NumPy 배열로 부터 생성 다른 텐서로부터 생성 무작위 또는 상수 값을 사용하여 생성 import torch import numpy as np # 1. 직접 생성 data = [[1,2],[3,4]] x_data = torch... 2023. 5. 8.
파이토치(PyTorch) 설치 파이토치(PyTorch) 설치 파이토치를 install 할 때는 아래 페이지 (파이토치 공식 홈페이지) 에서 자신의 PC 환경과 동일하게 설정을 해주면 command를 생성해준다. https://pytorch.org/ PyTorch An open source machine learning framework that accelerates the path from research prototyping to production deployment. pytorch.org 그런데 여기서 Compute Platform 항목에 CUDA 라는 것이 존재한다. CUDA란 Compute Unified Device Architecture의 약자로 NVIDIA가 만든 병렬 컴퓨팅 플랫폼 및 API 모델이다. CUDA 플랫폼은.. 2023. 5. 8.
728x90