CNN, Convolution Neural Network 요약

CNN, Convolution Neural Network 요약

Fully Connected Layer1 만으로 구성된 인공 신경망의 입력 데이터는 1차원(배열) 형태로 한정됩니다. 한 장의 컬러 사진은 3차원 데이터입니다. 배치 모드에 사용되는 여러장의 사진은 4차원 데이터입니다. 사진 데이터로 전연결(FC, Fully Connected) 신경망을 학습시켜야 할 경우에, 3차원 사진 데이터를 1차원으로 평면화시켜야 합니다. 사진 데이터를 평면화 시키는 과정에서 공간 정보가 손실될 수밖에 없습니다. 결과적으 ......
신경망 W 행렬 표기법: 'ij'/'ji' 의 차이점?

신경망 W 행렬 표기법: 'ij'/'ji' 의 차이점?

제가 처음에 딥러닝을 학습할 때 가장 혼란스러웠던 것은 입력 레이어의 데이터와 가중치 W의 합 표현하는 “Z(Weighted Sum)” 수식이 문서마다 다른 것이었습니다. <식 1>. Z(Weighted Sum)을 표현하는 수식 $$ \begin{align} Z^{[l]} & = W^{[l]T}A^{[l-1]} & (1) \\ Z^{[l]} & = W^{[l]}A^{[l-1]} & ......
딥러닝 역전파 수식 행렬의 전치(Transpose) 기준?

딥러닝 역전파 수식 행렬의 전치(Transpose) 기준?

Backpropagation을 직접 구현하는 과정에서 이유 없이 갑자기 발생하는 행렬 전치(Transpose)와 관련된 의문점이 오랜 기간 절 괴롭혔습니다. Backpropagation을 하기 위해서 Cost Function을 해당 계층의 W(가중치)로 편미분 한 후, 현재 W를 수정하는 수식을 유도하는 과정에서 일부 행렬이 전치행렬로 갑자기 변경됩니다. 문제는 제가 행렬이 전치(Transpose)되는 근거와 기준을 이해할 수가 없다는 것입니다 ......
딥러닝을 위한 Norm, 노름

딥러닝을 위한 Norm, 노름

기계학습 자료에서 간혹 Norm과 관련된 수식이나 표기법을 나오면 당황스러울 때가 있습니다. 선형대수에 익숙하지 않다면 Norm이 이상하게 보일 수 있습니다. 본 문서에서는 인공신공망과 기계학습 일고리즘에서 사용되는 Norm을 이해하는 것을 목표로 최소한도의 Norm 개념을 정리합니다. 일반적으로 딥러닝에서 네트워크의 Overfitting(과적합) 문제를 해결하는 방법으로 다음과 같은 3가지 방법을 제시합니다. 더 많은 데이터를 사용할 것 C ......
Hidden Layer의 오차 계산

Hidden Layer의 오차 계산

Neural Network에서는 Forward Propagation 결과로 계산된 Output Layer 출력과 해당 입력 데이터 레이블의 차이를 계산하여 오차(손실, Error/Loss)를 계산합니다. 그리고 이 오차 최소화를 목표로 Hidden Layer들의 Weight(가중치)와 Bias(편향)를 업데이트합니다. 이렇게 딥러닝에서는 Neural Network에 데이터를 지속해서 흘려보내고, 오차를 계산한 후 Weight와 Bias를 수정하 ......
Neural Network 표기법(Feat: Andrew NG)

Neural Network 표기법(Feat: Andrew NG)

그림 1: Neural Network 예제 Neural Network에 대한 Forward Propagation, Backpropagation, predict, Cost Function 등을 정리할 때 뉴럴 네트워크의 구성 요소와 각 위치가 혼동되어 어려움을 겪는 경우가 많습니다. Coursera에서 deeplearning.ai가 진행하는 Neural Networks and Deep Learning 강의에서 Neural Network 표기 ......
Terraform Jupyter Installer: Machine Learning 환경 프로비저닝

Terraform Jupyter Installer: Machine Learning 환경 프로비저닝

Terraform은 클라우드 인프라의 생성, 변경 및 형상 버전을 관리하는 툴입니다. Terraform을 이용하면 클라우드 자원을 효과적으로 사용하고 관리할 수 있습니다. Terraform을 활용하여 오라클 클라우드의 쉬운 접근법 제시를 목적으로 “Terraform Installer On Oracle Cloud“1 프로젝트를 준비하고 있습니다. Terraform으로 자원 할당, VM 생성, 소프트웨어 설치, 보안룰 적용 등 ......
tanh 미분 정리

tanh 미분 정리

Hyperbolic Tangent(tanh) 함수는 Sigmoid의 대체제로 사용될 수 있는 활성화 함수입니다. Hyperbolic Tangent(tanh)는 Sigmoid와 매우 유사합니다. 실제로, Hyperbolic Tangent 함수는 확장 된 시그모이드 함수입니다. tanh와 Sigmoid의 차이점은 Sigmoid의 출력 범위가 0에서 1 사이인 반면 tanh와 출력 범위는 -1에서 1사이라는 점입니다. Sigmoid와 비교하여 tan ......
Sigmoid 함수 미분 정리

Sigmoid 함수 미분 정리

Sigmoid 함수는 S자와 유사한 완만한 시그모이드 커브 형태를 보이는 함수입니다. Sigmoid는 대표적인 Logistic 함수입니다. Sigmoid 함수는 모든 실수 입력 값을 0보다 크고 1보다 작은 미분 가능한 수로 변환하는 특징을 갖습니다. 모든 입력에 대하여 sigmoid는 S와 같은 형태로 미분 가능한 0~1 사이의 값을 반환하기에 Logistic Classification과 같은 분류 문제의 가설과 비용 함수(Cost Funct ......
Numpy에서 np.sum 함수의 axis 이해

Numpy에서 np.sum 함수의 axis 이해

통계 및 데이터 분석, 딥러닝을 하다 보면 스칼라, 벡터, 행렬, 텐서와 같은 다양한 데이터 유형을 다루게 됩니다. 데이터 분석은 여러 유형의 데이터 합을 구하고 빈도수와 확률을 계산하는 반복적인 작업입니다. 다양한 데이터를 대상으로 선형대수(Linear Algebra) 연산에 numpy의 sum 함수을 사용하면 매우 편리합니다. 그러나 처음 numpy의 sum 함수를 접하면 axis 파라미터 때문에 굉장히 어렵게 느껴집니다. axis를 기준으 ......
Oracle IaaS 브랜드 명 변경

Oracle IaaS 브랜드 명 변경

2017년 9월 9일 오라클 클라우드 IaaS의 브랜드명이 변경되었습니다. Oracle Bare Metal Cloud Services (BMCS)와 Oracle Public Cloud (OPC)가 각각 “Oracle Cloud Infrastructure(OCI)“와 “Oracle Cloud Infrastructure Classic(OCI Classic)“으로 변경되었습니다. 이번 서비스명 변경이 기존에 ......
2017 Oracle Code in Seoul: IaC 발표 동영상

2017 Oracle Code in Seoul: IaC 발표 동영상

2017 Oracle Code in Seoul에서 발표한 “Vagrant, Terraform, Ansible을 활용한 클라우드 인프라 관리법“의 발표 동영상이 올라 왔습니다. 발표 동영상, 발표 자료 및 데모 문서를 정리합니다. 이 세미나는 2017년 8월 30일 14시 30분에 여의도 콘래드 3층 그랜드 볼륨에서 진행되었습니다. 클라우드 서비스에 Infrastructure as Code(IaC) 개념을 적용하여, 클라우드 ......
파이썬 가상 개발 환경 구성: pyenv, virtualenv, autoenv, pip

파이썬 가상 개발 환경 구성: pyenv, virtualenv, autoenv, pip

파이썬에는 Python 2와 Python 3이 공존하고, 파이썬 별로 다수의 서브 버전이 존재합니다. 또한, 파이썬 커뮤니티는 엄청난 수의 패키지를 만들고 공유하고 있습니다. 이러한 패키지들은 개별적으로 여러 버전을 갖고 있습니다. 컴퓨터 한 대에 여러 파이썬 프로그램을 돌릴 경우, 파이썬 애플리케이션의 파이썬 런타임 버전과 파이썬 라이브러리 충돌 문제가 빈번하게 발생합니다. 이러한 문제는 개발 언어와 런타임 및 라이브러리가 전역적으로 설치되고 ......
Fork된 Git 레파지토리에 원본 레파지토리 업데이트

Fork된 Git 레파지토리에 원본 레파지토리 업데이트

Github을 사용할 때 fork 레파지토리를 만들어 코드 변경 작업을 수행하는 것이 일반적입니다. Fork 된 레파지토리가 너무 오래되거나, 원본 레파지토리 병합 요청(”pull request”)이 반려되는 경우, Fork 된 레파지토리에 원본 레파지토리 변경 사항을 적용해야 하는 경우가 있습니다. Fork 된 레파지토리에 원본 레파지토리 변경 사항을 반영하는 방법을 정리합니다. github에서 Fork를 왜하는가? gi ......
'오라클은 Java EE를 떠넘기려한다' 기사의 팩트 체크

'오라클은 Java EE를 떠넘기려한다' 기사의 팩트 체크

2017년 08월 18일에 “Itworld“에서 “오라클, 더 이상 자바 EE를 이끌 생각 없다”라는 기사가 공개되었습니다.1 기사의 내용을 요약하면 다음과 같습니다. 오라클은 엔터프라이즈 자바 개발에서 리더십을 내려놓기를 원하며 이를 맡아줄 오픈소스 재단을 찾고 있다. 아파치(Apache)와 이클립스(Eclipse)가 자바 EE를 인수할 가능성이 높다. 오라클은 오픈소스 커뮤니티, 라이선스 사용자, ......