본문 바로가기

전체 글

(120)
[Algorithm] Tree, Map 자료구조 1. Tree란? 가계도와 같은 계층적은 구조를 표현할 때 사용할 수 있는 자료구조이다. 용어 정리) 루트 노드: 부모가 없는 최상위 노드 단말 노드: 자식이 없는 노드 크기: 트리에 포함된 모든 노드의 개수 깊이: 루트 노드부터의 거리 높이: 깊이 중 최댓값 차수: 각 노드의 간선 개수 (자식이 몇개인지) 기본적으로 트리의 크기가 N일 때, 전체 간선의 개수는 N-1개이다. 구현) 파이썬 코드 class Node: def __init__(self, data, left_node, right_node): self.data=data self.left_node=left_node self.right_node=right_node n = int(input()) tree = {} for i in range(10):..
[ComputerVision] Neural Networks and Backpropogation 1. 퍼셉트론이란? 코넬 항공 연구소에 근무하던 Frank Rosenblatt가 뉴런 모델을 기초로 퍼셉트론 학습 규칙이라는 개념을 고안하였다. 하나의 뉴런이 출력 신호를 발생할지 안할지 결정하기 위해 뉴런으로 들어오는 각 입력값에 곱해지는 가중치 값을 자동적으로 학습하는 알고리즘이다. 다수의 트레이닝 데이터를 이용하여 일종의 지도 학습을 수행하는 알고리즘이라고 볼 수 있다. 위 그림과 같은 구조에서 x 벡터들은 퍼셉트론 알고리즘으로 입력되는 값이며, w 벡터들은 x 벡터에 곱해지는 가중치이다. 특성값 x벡터에 가중치 w벡터를 곱하고 모두 더하여 하나의 값으로 만드는데, 이 값을 만드는 함수를 순입력함수(net input) 함수라고하고, 순입력 함수의 결과값을 특정 임계값과 비교하고 순입력 함수의 결과가..
[DeepLearning] AI 프로그래밍 복습 2 1. Linear Algebra (선형대수학) 1) 스칼라 숫자이다. ex. x = np.array(3.0) 2) 벡터 숫자 여러개이고, 어떤 특징으로 묶여있다. x ( R^n 이렇게 표현할 수 있다. ex. x = np.arange(4) 3) 메트릭스 2차원 숫자이고 행렬이라고 볼 수 있다. ex. A = np.arange(20).reshape(5,4) (순서는 행, 열) 메트릭스의 곱 k를 맞춰주어야한다. 여기서 k는 같은 차원! (교환법칙이 성립하지 않는다. ) 4) 텐서 3차원 이상의 숫자이다. ex. x = np.arange(24).reshape(2,3,4) 2. Derivative 함수 = 입력과 출력 미분은 입력값이 아주 작게 변화헀을 때 출력값이 얼마나 변화하는가에 대한 비율이다. 기초 미..
[ComputerVision] Linear Regression, Logistic Regression 기본적으로 알아야할 것: supervised Learning: 정답이 있다. upsupervised Learing: 정답이 없다. 1. Regression regression은 continous하고 depth estimation 즉 영상의 깊이 정보를 추정한다. classs는 discrete하고 semantic segmentation 즉 영상을 의미적으로 다른 부분으로 분할한다. ex. 1-1) regression의 목표 예측: 새로운 input에 대해 ouput을 예측한다. 분석: input과 output의 관계를 설명한다. 1-2) regression의 데이터 셋 input은 차원이 있는 벡터이고 (D) output은 수이다. Yn은 n-th output이고, Xn은 벡터 D이다. (여기서 n은 데이..
[Ontology] 기본 개념들 1. OWL 온톨로지란? 온톨로지는 특정 도메인의 지식을 표현하기 위한 것이다. 이를 위해서 여러 온톨로지 언어들이 있는데, 표준 언어는 W3C가 제정한 OWL이다. 현대 온톨로지는 다양한 언어로 표현되고 있음에도 불구하고 구조적으로 유사성이 보이는데, individual, class, attributes, relatoin을 기술한다. 온톨로지도 설계하는 개발자별로 스타일이 있을 수 있다. 2. Individual 개념 = Instance, entities 특정 도메인의 '객체'를 의미한다. 사람, 동물, 분자와 같이 구체적 개체일 수도 있고 추상적일수도 있다. 3. Property개념 individual과 individual 사이의 관계이다. 둘 사이의 관계이므로 Property는 binary rela..
[ComputerVision] 공간 도메인과 주파수 도메인 기초 1. 디지털 이미지의 기초 1-1) 샘플링 & 양자화 샘플링: 수많은 데이터 가운데 유한한 개수의 데이터를 뽑아내는 것, 카메라 화소가 높다는 것은 어떤 장면에 대한 빛의 패턴 신호를 높은 주파수로 샘플링하는 것을 의미한다. 양자화: 아날로그 형태로 되어있는 신호나 정보를 디지털화, 아날로그에서는 0과 1 사이에는 무수히 많은 숫자가 존재하는데, 현실적으로 다 표현할 수 없기 때문에 근접한 값으로 설정 이미지 생성: 광원이 어떤 에너지 소스가 빛을 내고 물체에서 반사된다. imaging system을 통하여 아날로그 신호들이 sampling과 quantization을 통하여 디지털정보로 저장된다. 결론) 화소가 높아질수록 좋아진다 = 샘플링 간격이 좁아지고, qauntization 간격이 좁아진다. 1-..
[Algorithm] 정렬 1. 정렬 알고리즘이란? 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. (정렬 알고리즘은 이진 탐색의 전처리 과정이기도하니 제대로 알고 넘어가자.) 파이썬에서는 내림차순 리스트를 제공하고, 이는 O(N) 복잡도로 수행가능하니, 오름차순만 우선 공부해보자. 2. 선택 정렬 선택정렬의 아이디어는 매번 ' 가장 작은 것을 선택한다. ' 이다. 데이터가 무작위로 여러 개 있을 때, 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복한다. 가장 작은 데이터를 N - 1번 반복하면 정렬이 완료되는 것을 알 수 있다. array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)):..
[DeepLearning] 아나콘다, 주피터 가상환경 설정 1. 아나콘다를 설치한다. https://www.anaconda.com/ Anaconda | The World's Most Popular Data Science Platform Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities. www.anaconda.com 2. 가상환경을 생성한다. 맥북은 프롬트창을 따로 사용하지 않고 터미널에서 진행할 수 있다. #가상환경 생성 명렁어 conda create -n deepLearning python=3.7 명령어를 통해 deepLearning이라는 가상환경을 파이썬 ..