Docker Image: 파이썬 기반 머신러닝 학습용 이미지

Docker Image: 파이썬 기반 머신러닝 학습용 이미지

파이썬으로 데이터를 분석하고 머신러닝을 수행하기 위해서 필요한 환경을 Docker 이미지 ‘pyml‘을 만들어 운영하고 있습니다. 컴퓨터에 Docker가 설치되어 있다면 바로 Docker 이미지를 다운받아 사용할 수 있습니다. ‘pyml’ 더커 이미지는 주기적으로 업데이트되며 docker hub 레파지토리에서 운영됩니다. https://hub.docker.com/r/taewanme/pyml/ 이 문 ......
다차원 텐서 Transpose와 Reshape

다차원 텐서 Transpose와 Reshape

CNN과 같은 이미지 데이터를 다룰 때 입력 데이터로 4차원 텐서를 다룹니다. 이 4차원 데이터는 (image 수, channel 수, Height , Width)와 같은 구조를 갖습니다. 데이터를 전처리하는 과정에서 Channel First인 텐서를 Channel Last 텐서로 변형해야 하는 상황이 발생했습니다. 처음에 4차원 구조는 상상하기도 어려운데 4차원 텐서를 전치하라는 것은 어떤 의미인지 난감했습니다. 문제의 시작: Channel ......
scikit-learn의 fetch_mldata('MNIST original') 에러

scikit-learn의 fetch_mldata('MNIST original') 에러

scikit-learn은 테스트 데이터로 사용할 수 있는 여러 데이터셋를 간편하게 로딩하는 기능을 제공합니다. 특히 머신러닝 테스트에 사용할 수 있는 대표적인 데이터셋을 로딩하는 기능을 제공하기 때문에, 이 기능을 이용하여 많은 문서가 이용하여 입문자 문서를 작성하는 것이 일반적입니다. scikit-learn이 제공하는 데이터셋 로딩 기능 중에서 fetch_mldata 함수는 mldata.org의 데이터셋을 이용합니다. 최근에 mldata.or ......
머신러닝 용어: Example, Sample & Data Point

머신러닝 용어: Example, Sample & Data Point

머신러닝을 공부하면서 굉장히 생소하게 느껴졌던 용어가 몇 개 있습니다. 그 중에서 가장 어색했던 용어는 데이터셋의 개별 데이터를 표현하는 용어였습니다. 일반적으로 머신러닝 데이터셋의 개별 데이터를 다음과 같은 용어로 표현합니다. Example Sample Instance Data Point 문서를 번역하거나 정리하는 과정에서 위 용어를 어떻게 처리해야 할지가 항상 고민이었습니다. 개별 데이터를 왜 이렇게 표현하는지 제 개인적인 느낌을 정리해 ......
Docker Image: 파이썬 기반 머신러닝 학습용 이미지

Docker Image: 파이썬 기반 머신러닝 학습용 이미지

파이썬을 기반으로 머신러닝이나 딥러닝 작업을 진행할 때 가장 귀찮고 꺼려지는 작업은 기본 환경을 준비하는 과정입니다. 파이썬 기본 환경을 효과적으로 관리하기 위해서 Docker Image 형태로 PYML을 만들었습니다. PYML은 텐서플로우, 파이토치, 케라스 및 Scikit-Learn을 활용하여 데이터를 분석할 수 있는 환경이며 UI로 IPython을 사용합니다. taewanme/pyml 컨테이너 이미지 pyml 더커 이미지는 docker h ......
파이썬 데이터 사이언스 Cheat Sheet: NumPy 기초, 기본

파이썬 데이터 사이언스 Cheat Sheet: NumPy 기초, 기본

파이썬 기반 데이터 분석 환경에서 NumPy1는 행렬 연산을 위한 핵심 라이브러리입니다. NumPy는 “Numerical Python“의 약자로 대규모 다차원 배열과 행렬 연산에 필요한 다양한 함수를 제공합니다. 특히 메모리 버퍼에 배열 데이터를 저장하고 처리하는 효율적인 인터페이스를 제공합니다. 파이썬 list 객체를 개선한 NumPy의 ndarray 객체를 사용하면 더 많은 데이터를 더 빠르게 처리할 수 있습니다. Nu ......
CNN, Convolutional Neural Network 요약

CNN, Convolutional 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 ......
Terraform Jupyter Installer: Machine Learning 환경 프로비저닝

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

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