머신러닝 통계학 핵심 개념 - 머신러닝 분야의 발전 방향 : 수학 → 통계학 → 컴퓨터과학 → 머신러닝 - 통계 모델은 수학적 모델 → 변수들로 이루어진 수학식을 계산해 실제 값을 추정하는 방법 ex. 직선 위에 존재하는 각 점 == 데이터 / 수학적 모델로 생성 → 통계 모델 - 통계 모델을 이루는 여러 가정은 확률 분포를 따름 ex. 정규분포 : 평균에 수렴하는 구조. (평균치가 가장 많은 구조, 양 극단이 적어지는 모양==종형태) - 통계 모델은 모든 변수가 만족해야 하는 기본 가정으로 시작, 이 조건이 만족 시 모델의 성능이 통계학적으로 의미를 갖음. 용어 정리 - 모집단 : 모든 관측값 또는 분석 대상의 전체 데이터 (ex. 인구 총 조사) → 단점 : 고비용 - 표본 : 모집단의 부분집합, 분..
머신러닝을 위한 통계 기초 [ 개요 ] 1. 통계학의 용어와 통계 모델링에 대해 살펴본다. 2. 기술 통계학과 추론 통계학의 핵심 내용에 대해 살펴본다. 3. 가설 검정의 방법과 절차에 대해 살펴본다. 통계학 : 수치 데이터의 수집, 분석, 해석, 표현 등을 다루는 수학의 한 분야로 크게 기술 통계학과 추론 통계학으로 분류. - 기술 통계학: 연속형 데이터 → 평균, 표준편차와 같은 자료 요약 (키, 나이, 가격 등) 범주현 데이터 → 빈도, 백분율과 같은 자료 요약 (성별, 성씨 등) - 추론 통계학: 표본이라 불리는 일부 자료를 수집, 전체 모집합에 대한 결론 추론 추론은 가설 검정, 수치의 특징 계산, 데이터 간 상관관게 등을 통해 이루어짐 통계 모델링 : 데이터에 통계학을 적용, 변수의 유의성을 ..
탐색(Search) - 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 Ex. DFS, BFS, Graph, Tree.. DFS와 BFS 알고리즘을 제대로 이해하려면 기본적인 자료구조인 스택, 큐에 대한 정리가 요구되므로 간단히 정리한다. 스택(Stack)과 큐(Queue)는 자료 구조(Data Structure)의 일종 +) 자료구조 : 데이터를 표현하고 관리, 처리하기 위한 구조 주요 함수 및 고려해야 할 점 - 삽입(Push) : 데이터 삽입 - 삭제(Pop) : 데이터 삭제 - 오버플로(Overflow) : 자료구조가 수용 가능한 데이터의 크기를 이미 가득 찬 상태, 삽입 연산을 수행할 때 발생 - 언더플로(Underflow) : 자료구조에 데이터가 전혀 들어있지 않은 ..
구현하기 어려운 문제 1. 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제 2. 특정 소수점까지 출력하는 문제 3. 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어 리스트에 넣어야 하는(파싱하는) 문제 .... = 구현하기 까다로운 문제들 본 책에서는 완전탐색: 모든 경우의 수를 주저없이 다 계산하는 해결법 / 시뮬레이션: 문제에서 제시한 알고리즘을 한단계씩 차례대로 직접 수행하는 문제 두가지를 구현 탭에서 묶어서 설명한다. 구현시 고려해야 할 메모리 제약 사항 C/C++/JAVA에서의 변수 표현 범위 파이썬에서는 직접 자료형을 지정할 필요가 없고, 큰 수의 연산을 기본으로 지원한다. 따라서 표현 범위 제한에 대해 깊게 이해하지 않아도 됨. 다만, 파이썬의 실수형 변수는 유효 숫자에 따라 연산결..
※ 본 게시물에 사용된 내용은 대다수 에서 사용된 자료이며, 일부 자료는 추가 수정한 부분도 존재합니다. 합성곱 신경망(Convolutional Neural Network)의 발견 CNN : 다차원 데이터를 위한 신경망 자세한 개념은 다음 포스팅 [Pytorch-기초강의] 4. 이미지 처리 능력이 탁월한 CNN(Convolution, kernel, Padding, Pooling) ※ 본 게시물에 사용된 내용 및 그림의 출처는 대다수 에서 사용된 자료이며, 일부 자료는 추가 수정한 부분도 존재합니다. - CNN(Convlutional Neural Network)의 기초 yjs-program.tistory.com 본 챕터에서는 CNN의 기초적인 동작부터 간단한 CNN모델까지 구현해보는 실습을 진행한다. 자세..
Tensorboard in Google Colab Google Colab에서 Tensorboard를 확인하기 위한 방법 - 구글 코랩 (Google Colab) 에서는 별도의 설치 없이 바로 동작 가능 +) Colab이 아닌, jupyter notebook 서버나 별도의 Local의 경우 아래 커맨드로 설치 가능 pip install jupyter-tensorboard Colab의 magic command를 사용해서 진행 colab magic command : Ipython (Jupyter Notebook) 에는 마법같은 기능을 제공해주는 Magic Command 가 내장 "%를 명령어 앞에 붙이기" 아래 커맨드를 입력해서 실제 magic command 목록을 확인할 수 있다. %lsmagic Colab..
※ 본 게시물에 사용된 내용은 대다수 에서 사용된 자료이며, 일부 자료는 추가 수정한 부분도 존재합니다. 텐서플로2와 케라스 시작 텐서플로(TensorFlow): 구글 브레인 팀에서 제작, 연구원과 머신러닝 전문가가 사용하는 수학 라이브러리로, 심층 신경망을 훈련시키고 실행하는데 주로 사용된다. TensorFlow 모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 TensorFlow의 유연한 환경입니다. www.tensorflow.org 텐서플로는 간단하게 다음과 같은 추상 아키텍쳐를 갖고 있다. 대다수의 딥러닝 계산은 C++로 구성되어 있으며, GPU나 에서 계산을 실행하기 위해 Nvidia에서 사용하는 CUDA 라이브러리를 사용하게 된다. (이래서..
Numpy Seed 파이썬, C++ 과 같이 난수를 발생시켜 수행하는 코드에서는 주로 Numpy의 random함수를 많이 사용한다. 그 중에서도 np.random.seed라는 코드가 존재하는데 이는 시드(seed)를 설정해주는 과정이다. 사실 컴퓨터 프로그램에서 발생한 랜덤값은 무작위 수가 아니라 특정 시작 숫자값을 정해주면 정해진 알고리즘에 따라 마치 난수처럼 보이는 수열을 생성하는 것이다. 이때 설정해주는 특정 시작 숫자가 바로 시드(seed)이다. 이 시드값은 보통 현재 시각 등을 이용해 자동으로 정하기도 하지만, 직접 사람이 수동으로 설정할 수도 있다. 특정 시드값이 사용될 경우 이후에 발생되는 난수를 알고리즘에 따라 직접 예측할수도 있다. np.random.seed(0) python을 사용해 예..
※ 본 게시물에 사용된 내용은 대다수 에서 사용된 자료이며, 일부 자료는 추가 수정한 부분도 존재합니다. Computer Vision 컴퓨터 비전 : 디지털 이미지(영상)에서 정보를 자동으로 추출하는 것 = 컴퓨터에게 인간이 이해하는 방식, 그보다 더 나은 방식으로 픽셀 단위의 데이터를 이해하는 방법을 가르치는 것. 컴퓨터 비전의 주요 목적은 콘텐츠 인식: 이미지를 이해하는 것, 즉 픽셀로부터 유의미한 의미론적 정보(이미지 내 객체, 위치, 개수 등)을 추출하는 것. 자세한 컴퓨터 비전의 세부 분류는 다음과 같다. - 객체 분류(Object Classification) : 객체 분류(이미지 분류)라 불리며, 사전 정의된 집합의 이미지 전체에 적절한 label(or class)을 할당하는 작업 - 객체 식..
이미 다루고 있던 Tensorflow의 기초 및 Computer Vision 기술 개념을 재정리 하기 위한 포스팅 시리즈 깔끔하게 재정리하기 위해 다음 교재를 토대로 작업할 예정 관련 코드는 아래 깃허브에 공유되어 있다. GitHub wikibook/dl-vision 《실전! 텐서플로 2를 활용한 딥러닝 컴퓨터 비전》 예제 코드. Contribute to wikibook/dl-vision development by creating an account on GitHub. github.com