for-loop를 이용하여 계산하면 굉장히 시간이 오래걸려서 가급적 동시에 처리할 수 있도록 벡터화를 통해 하나의 instruction으로 연산할 수 있도록 vectorization을 해주어야한다. 위 그림을 보면 두번째 레이어에서 weight 5개가 있고 그 weight 5개를 아래와 같이 벡터라이제이션 해준다. 위 그림은 레이어 하나 안에 있는 한 뉴런인데, 뉴런안에 있는 weight, 인풋, 아웃풋 등을 전부 아래의 식에서 나온 것과 같이 벡터라이제이션을 해줘야한다. ※ 벡터라이제이션에 대한 내용은 실습 시 코드를 짤 때도 벡터의 크기를 맞추는 것이 매우 중요하니 공부해둘 필요가 있다.
전체 글
feature, label로 학습을 하는 지도학습과 달리 오직 feature만으로도 학습이 된다는 점이 신기하다. 에듀윗 부산대 강의에서는 클러스터링 기법은 계층적 군집 방식과 비계층적 군집방식의 k-means 방식에 대해 배웠다. 그리고 추가적으로 찾아보니 위의 방식같은 분류뿐만 아니라, 차원축소에도 비지도학습이 사용된다고한다. 여기서의 '차원축소' 란 시각화를 위해 데이터셋을 2차원으로 변경하거나 이미지 데이터를 압축하는 경우가 있다. 이 차원축소의 대표적인 방식이 PCA,주성분 분석 방식이 있다.
RNN = 순환신경망 - 현재 스텝의 출력이 다음 스텝의 입력이 됨 - 정보가 계속 도는 구조 - 매 시퀀스에서 RNN 모델은 현재의 입력뿐 만 아니라 이전 스텝의 요소들을 기억하고 활용함 - 고정길이보다 임의의 길이의 시퀀스를 다룰 때 효과적 순환구조 t-3시간 때 x에서 인풋 y쪽으로 아웃풋 그 y는 y(t-3) 이것은 다시 x(t-2)와 함께 다시 한번 인풋으로 들어감 아웃풋 신호가 다시 인풋으로 들어감 메모리 셀 = x와 y사이의 은닉 셀 1) seq to seq : 가장 기본적 2) seq to vector 입력은 x0~x3로 4개, but 출력은 1개 1번은 모든 데이터가 들어와서 현재시간에 모든 데이터를 출력으로 잡아줘야함 2번은 과거의 데이터를 이용해서 미래를 예측할 때, 과거의 데..
활성화 함수 활성화 함수는 인공신경망에서 입력 값에 대해서 가중치를 곱한 뒤 적용하는 함수를 의미한다. 예를 들어, - 계단 함수(Step Function) - 시그모이드(Sigmoid) - tanh 함수(Hyperbolic tangent function) - ReLU(Rectified Linear Unit) - Leakly ReLU - PReLU - ELU(Exponential Linear Unit) - Maxout 함수 - 항등 함수(Identity Function) - 소프트맥스 함수(Softmax Function) 등이 있다. 신경망은 입력층, 은닉층, 출력층으로 구성되는데, 선형함수를 사용할 경우에는 은닉층을 사용할 수 X. 즉, 선형함수를 여러층으로 구성하더라도 결국은 선형함수를 그저 여러번 ..
벡터화 일반적으로 평소에 코딩할 때 for문을 정말 자주 사용하는데, 딥러닝의 구현에 있어서는 for문의 사용은 코드 실행을 느려지게 만들 수 있다. numpy 내장함수를 사용하게 되면 for문을 사용할 때보다 훨씬 빨라질 수 있다. 그렇기 때문에 일단 for문을 쓰고 싶다면 그 공식을 쓰지 않고 numpy 내장 함수를 사용할 수 있는지 먼저 확인을 해야함 만약 코드를 벡터화하지 않는다면, 위와 같이 Z = wx + b를 구현하기 위하여 z = 0으로 초기화시킨 후 for문을 반복적으로 계산해야한다. 반면, 코드를 벡터화했을 경우에는 파이썬의 라이브러리 함수를 통해 위와 같이 간단하게 한 줄로 표현가능하다. 위 코드는 로지스틱 회귀의 도함수를 구하는 코드이다. 위 코드에서는 for문이 2번 나타난..
- numpy.array() : 배열 생성 - numpy.ndim() : 차원 출력 - numpy.zeros() : 0으로 채워진 배열 생성 numpy.ones() : 1로 채워진 배열 생성 - numpy.sqrt() : 배열 원소들 제곱근 구하기 numpy.square(): 배열 원소들 제곱하기 - numpy.init64() : 데이터 타입 변환시키기 (cf. numpy.float64()) - numpy.transpose() : 배열 전치 - numpy.mean() : 배열 원소의 평균 numpy.var() : 배열원소의 분산 numpy.std() : 배열 원소의 표준편차 - numpy.around( ): 배열원소의 반올림 numpy.ceil() : 올림 numpy.floor(): 내림 - numpy...
데이터 과학 • 정의 - 데이터를 분석하여 유용하고 새로운 정보, 지식을 추출하는 기술 - 산업 활동의 의사결정에 도움 => 공익, 매출 , ..., 증대 • 분야 - 통계학, 인공지능, 기계학습이 융합된 분야 - 타 분야 와의 차별점 -> 기술의 활용에 주안점 - 데이터 마이닝, 빅데이터 기술 이라고도 함 • 분석의 종류 1) 기술 분석 (Descriptive analysis) - 데이터에 대한 설명을 사람이 알기 쉬운 방법으로 생성 - 여기서 '기술' 은 technology가 아닌 데이터를 표현, 묘사한다는 것 - 사례 : ⅰ. 두 반의 성적을 비교하기 위하여 각 반마다 시험점수의 평균을 계산함 => 이러한 과정을 요약(abstraction)이라 함 (요약 : 원래의 객체가 양적,질적으로 크고 복잡할..
1. 인공지능의 정의 - 감각하고 판단하고 행위하는 방법에 관한 연구 - 앎을 표현하고 활용하는 시스템 동물들은 두뇌가 발달하지 않았지만 감각기관이 뛰어나고 감각기관으로 들어온 정보를 바로 출력으로 내보낸다. => 즉각 반응형, 조건 반사..., 본능적으로 행동하는 처리과정 그래서 동물들은 판단기능이 굉장히 낮다. 거의 자동으로 행동을 하는 무의식적 행동. => 이런 방식의 처리를 "즉각 반응형(Reactive) 처리 방식" 이라고 한다. 반면에, 좀 더 대상에 대해서 개념작업이 일어난 후 이것을 가지고 판단을 해서 행위를 하는 것 = “판단” => 의식적, 사유를 하고 이런 것을 모두 포괄. 인간이 할 수 있음. 인간은 진화과정을 통해 대뇌가 발전한다. 이것을 중심으로 전개되는 처리 과정을 "deliv..