본문 바로가기

전체 글58

[AI 데이터 분석] 딥러닝 시작하기 02. 텐서플로우와 신경망 딥러닝 모델 딥러닝 모델은 다수의 히든층이 있는 모델을 얘기한다. 각 층을 구성하는 요소를 Node/Unit이라 부르고, 모델을 구성하는 층을 Layer라 부르고, 노드 간의 연결 정도(화살표)를 가중치(Weight)라 한다. 숫자가 크면 연결 강도가 크고 작으면 연결 강도가 작은 것이다. 예측값과 실제값 간의 오차값을 최소화하기 위해 오차값을 최소화하기 위해 오차값을 최소화하는 모델의 인자를 찾는 알고리즘을 적용한다. Loss function을 최소화하는 가중치를 찾기 위해 최적화 알고리즘을 적용한다. 딥러닝 모델이 예측값을 구하는 방식을 순전파(Forward propagation)이라 한다. 입력값을 바탕으로 출력값을 계산하는 과정이다. 활성함수는 비선형함수라서, 딥러닝 모델이 비선형적인 데이터에도 .. 2022. 10. 8.
[AI 데이터 분석] 딥러닝 시작하기 01. 퍼셉트론 딥러닝 머신러닝의 여러 방법론 중 하나로, 인경신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법이다. 일굴 인식 카메라나 기계 번역 모델, 알파고 제로와 같은 적용 사례가 있다. (알파고는 본래 강화 학습 모델이었으나 딥러닝이 결합함) 딥러닝 모델은 데이터의 특성을 스스로 학습하는 게 특징이다. 인공신경망 생물학의 신경망에서 영감을 얻은 학습 알고리즘으로, 사람의 신경 시스템을 모방했다. 퍼셉트론 $x_1, x_2$와 같이 입력 값을 신호로 받으면 가중치는 들어오는 신호의 증폭 정도를 정해준다. bias는 입력하는 값에 상관없이 무조건 입력되는 값이다. 수식에 맞게 합산이 되고, 활성화 함수(Activation function)을 거쳐야만 y값이 출력된다. 여기서 활성화 함수가 $x>=0$일 .. 2022. 10. 8.
[Github으로 따라하는 버전 관리] Git 협업 Branch 큰 개발 프로젝트를 진행한다 가정해보자. 여러 개발 팀 혹은 팀원으로 나뉘어 진행할 것이다. 예를 들어, 머신러닝 개발 프로젝트를 진행하는 팀에서는 데이터를 전처리하고 저장을 하는 팀, 모델을 개발하는 팀, 모델을 서빙하는 팀이 있을 수 있다. 각 팀 안에서는 버그를 수정하거나 새로운 기능을 개발해야 하는 일이 많을 것이다. 각 팀별로 버전을 관리할 필요성이 있다. 이럴 때, 각 팀에서는 개발 프로젝트의 소스코드를 바탕으로 개발을 해나갸야할 것이다. 이후 개발이 완성되면 프로젝트에 병합을 시켜 새로운 버전을 생성하여 다른 팀원들과 충돌나지 않으면서 프로젝트를 진행할 수 있다. ​ 브랜치(branch)는 프로젝트를 바탕으로 독립적으로 개발을 할 수 있는 저장소(작업영역)이다. 저장소를 처음 만.. 2022. 10. 7.
[Github으로 따라하는 버전 관리] Git 기초 Git 소프트웨어 개발을 할 때, 여러 사람이 참여하는 방식으로 개발의 효율을 올린다. 팀원들이 개발 도중에는 수정된 내역을 다른 팀원들이 바로 확인하고, 또 서비스에서는 배포된 소프트웨어의 버전 관리를 통해 개발의 효율성을 높일 수 있을 것이다. Git은 소프트웨어 버전관리 시스템(VCS, Version Control System)의 한 종류다. "프로그램의 소스코드를 관리하는 프로그램"인 것이다. ​ Git server & Git client git은 여러가지 버전 관리 시스템 중에서도, 분산된 환경을 통해 소스코드를 관리한다. 분산 환경 시스템에는 중앙서버와 클라이언트가 존재하게 된다. 이 때 코드를 모아놓게 되는 원격 컴퓨터를 remote server, 그 코드들의 사본을 받아 개발하는 개인/지역.. 2022. 10. 7.
[AI 데이터 분석] 머신러닝 시작하기 04. 지도학습 - 분류 분류 주어진 입력 값이 어떤 클래스(범주, label)에 속할지에 대한 결과 값을 도출하는 알고리즘이다. 다양한 분류 알고리즘이 존재하며, 예측 목표와 데이터 유형에 따라 적용한다. 분류 문제에 다양한 머신러닝 모델을 사용하여 해결한다. 가장 간단한 모델인 의사결정나무가 있다. 간단함에도 성능도 좋고, 이후에 확장할 수 있는 모델도 많다. 앙상블 기법과 함께 고급 기법까지 나무를 통해 만들 수 있다. 트리 구조 기반 의사결정나무, 랜덤포레스트, … 확률 모델 기반 나이브 베이즈 분류기, … 결정 경계 기반 선형 분류기, 로지스틱 회귀 분류기, SVM, … 신경망 퍼셉트론, 딥러닝 모델, … … … 선형 회귀 식은 -∞ ~ +∞의 결괏값을 가질 수 있다. 따라서 일반적인 회귀 알고리즘은 분류 문제에 그대로.. 2022. 10. 7.
[AI 데이터 분석] 머신러닝 시작하기 03. 지도학습 - 회귀 회귀 분석 회귀 분석이란 데이터를 가장 잘 설명하는 모델을 찾아 입력값에 따른 미래 결과값을 예측하는 알고리즘이다. 완벽한 예측을 불가능하기에 최대한 잘 근사해야 한다. 각 데이터의 실제 값과 모델이 예측하는 값의 차이를 최소한으로 하는 선을 찾아야 한다. 단순 선형 회귀 데이터를 설명하는 모델을 직선 형태로 가정한다. 데이터를 가장 잘 설명하는 β를 찾는 것. 데이터를 잘 설명한다는 것은, 실제 정답과 내가 예측한 값과의 차이가 작을 때이다. 단순 (실체값 - 예측값)은 부호 때문에 합계를 내면 이 차이를 정확히 나타내지 못한다. 부호가 상쇄하는 것을 막기 위해 (실제값 - 예측값)의 제곱을 통해 판단한다. Loss 함수 실제 값과 예측 값 차이의 제곱의 합을 Loss 함수로 정의한다. 따라서 Loss.. 2022. 10. 7.
[AI 데이터 분석] 머신러닝 시작하기 02. 데이터 전 처리하기 머신러닝 과정 데이터 수집 데이터 분석 및 전 처리 머신러닝 학습 머신러닝 평가 크롤링 또는 DB 데이터를 통하여 데이터 수집 수집한 데이터를 분석하고 머신러닝에 사용할 형태로 전 처리 머신러닝 모델을 사용하여 데이터를 학습 학습된 머신러닝 모델을 평가용 데이터를 사용하여 평가 평가에서 잘 안 되거나 전 처리가 잘 안 되면 다시 학습하거나, 분석하거나, 또 다른 데이터를 수집하는 단계로 되돌아간다. 데이터 전 처리의 역할 머신러닝의 입력 형태로 데이터 변환 (특성 엔지니어링) 결측값 및 이상치를 처리하여 데이터 정제 학습용 및 평가용 데이터 분리 대부분의 머신러닝 모델은 숫자 데이터를 입력 받는다. 일반적으로 행렬 형태로 입력 받는데, 여러 형태로 존재하는 다양한 데이터를 수치형 자료로 변환해주는 과정이.. 2022. 10. 7.
[AI 데이터 분석] 머신러닝 시작하기 01. 자료 형태의 이해 자료의 형태 머신러닝은 데이터라는 디지털 자료를 바탕으로 수행하는 분석 방식이다. 자료의 형태를 파악함은 머신러닝을 사용하기 위한 필수 과정으로 아래 물음의 답을 얻을 수 있다. 데이터가 어떻게 구성되어 있을까? 어떤 머신러닝 모델을 사용해야 할까? 데이터 전 처리를 어떻게 해야 할까? 수치형 자료는 양적 자료(Numerical Data)라고도 불린다. 수치로 측정한 가능한 자료다. (키, 몸무게, 시험 점수 등) 범주형 자료는 질적 자료(Qualitative Data)라고도 불린다. 수치로 측정이 불가능한 자료다. (성별, 지역, 혈액형 등) 둘을 구분할 때 자료의 숫자 표현 가능 여부로 구분하면 안 된다. 범주형 자료가 숫자로 표현되는 경우도 있기 때문이다. 남녀 성별 구분 시 남자를 1, 여자를 0.. 2022. 10. 6.