본문 바로가기

전체 글

(20)
CNN으로 사진 분류하기 - 합성곱(convolution): 작은 필터를 이용해 이미지로부터 특징을 뽑아내는 알고리즘 - CNN: 합성곱층을 반복적으로 쌓아서 만든 인공신경망 - 특징맵: 합성곱층의 결과, 합성곱층이 특징을 추출한 뒤의 이미지 - 이미지 정규화: 이미지의 픽셀 간 편향을 제거하는데 사용됨 각 채널의 분포가 동일해지므로 학습이 원활하게 이루어짐 - 커널: 이미지로부터 특징을 추출하기 위한 가중치를 행렬로 나타내고 커널의 집합을 필터라고 함 - 스트라이드: 커널의 이동거리 - 데이터증강: 이미지에 여러 변형을 주어 이미지 개수를 늘리는 기법(회전, 크기변경, 밀림, 반사, 이동 등) 합성곱은 작은 필터를 이용해 이미지로부터 특징을 추출해내는 방법으로 예를들어 영어는 검은글씨, 한글뜻은 빨간글씨로 적혀있는 영어단어책이..
간단한 신경망 만들기(보스턴 집값 예측하기) 간단한 신경망을 만들기 위해 사이킷런에서 제공하는 보스턴 집값에 영향을 미치는 데이터셋을 불러와서 집값을 예측해보자. 이번에는 선형회귀 알고리즘을 사용하여 모델링하여 회귀에 의해 얻은 결과를 실제데이터와 비교해 오차(MSE)를 줄여나가는 방식으로 학습한다. 선형 회귀 MLP모델에서는 입력층에 입력데이터가 들어오면 은닉층에 전달된 입력 데이터의 특징으로부터 정보를 추출한다. 이후 출력층의 예측값과 실제 정답을 비교해 손실을 계산한다. 손실을 계산했으면 가중치를 수정하기 위해 오차를 역전파한다. import pandas as pd from sklearn.datasets import load_boston dataset = load_boston() dataFrame = pd.DataFrame(dataset['d..
간단한 신경망 만들기(사인함수 예측하기) 이미지를 딥러닝을 이용해 인식하는 모델은 천만에서 1억 개가 넘는 가중치를 가지며 자연스러운 문장을 생성하는 OpenAI GPT-3 언어모델은 1,750억개까지의 가중치를 갖는다. 이러한 복잡한 딥러닝모델을 설계하기 전에 연습삼아 간단한 신경망모델을 만들어보자. - 파이토치에서 '모듈'은 신경망을 구성하는 기본 객체이다. 모듈에는 구성요소를 정의하는 __init__()함수와 순전파의 동작을 정의하는 forward()함수가 있다. - 간단한 신경망은 nn.Sequential, 복잡한 신경망은 nn.Module을 이용한다. - MSE(평균 제곱 오차)는 회귀, CE(크로스 엔트로피)는 분류에 이용한다. - 피처는 신경망의 입력으로 들어오는 값으로 데이터가 갖고 있는 특징이다. - 배치: 데이터셋의 일부로 신..
인공신경망 ANN 이해하기(인공지능 핵심용어 등) 인공신경망(ANN)은 사람의 신경망을 본떠서 만든 알고리즘이다. 인공신경망이란 수많은 뉴런들을 서로 그물망처럼 묶어서 정보를 앞에서 뒤로 전달하며 출력층에 나온 값을 가지고 예측하는 알고리즘이다. 퍼셉트론을 이용해 만든 모든 구조물을 인공 신경망이라고하고 퍼셉트론을 하나만 사용하면 '단층신경망', 여러개를 사용한다면 '다층신경망'이라고 부른다. 딥러닝은 결과를 해석하는 일은 쉽지않다. 똑같은 코드를 누가 실행하느냐에 따라 결과가 바뀌고 성능이 좋게 나오면 운이 좋아서 그런 건지, 아니면 지금 데이터에 한해서만 성능이 좋은 건지 알기 어렵다. 신경계의 뉴런들은 작은 패턴을 찾아내는데 특화되어있고 작은 단위의 패턴을 다음 층의 인풋으로 사용해서 더 섬세하게 예측한다 ※인간의 신경계: 몸 안팎에서 일어나는 변..
딥러닝 문제 해결 체크리스트 1. 풀어야 할 문제 이해하기 - 정확한 값을 예측하는 회귀 문제인가? - 입력이 속한 범주를 예측하는 분류 분제인가? 2. 데이터 파악하기 - 입력 자료형과 정답 확인하기 - 클래스 간의 불균형은 없는지 확인하기 - 누락된 데이터 혹은 자료형에 맞지 않는 데이터가 포함되어 있는지 확인하기 3.데이터 전처리 - 학습에 필요한 데이터가 부족하다면 데이터 증강하기 - 데이터를 정규화해서 값의 범위 맞추기 4. 신경망설계 - 데이터의 공간 정보가 중요하면 합성곱 적용하기 - 데이터의 순서 정보가 중요하면 RNN 적용하기 5. 신경망학습 - 적합한 손실함수 찾기 - 가중치 수정을 위한 최적화 정하기 - 신경망의 성능을 평가하기 위한 평가 지표 정하기 6. 손실이 무한대로 발산한다면 - 손실 함수 바꿔보기 - 데..
지도학습, 비지도학습, 강화학습 머신러닝의 학습방법을 지도학습, 비지도학습, 강화학습으로 분류합니다. 1. 지도학습: 데이터에 정답이 있음 - 고양이와 토끼를 구분한 예측결과를 출력함 2. 비지도학습: 데이터에 정답이 없음 - 구매이력이 담긴 쇼핑이력, 구매이력으로 소득수준 파악, 소비자의 취향파악 등 정답은 없지만 주어진 정보를 이용해 상관관계를 찾아냄 - 데이터를 그룹으로 나누는 클러스터링과 이상치 탐지에 사용됨 3. 강화학습: 데이터를 사용하지 않고 인공지능이 스스로 시행착오를 겪으며 성장하는 학습방법 - 강화학습을 데이터를 입력으로 받지 않고 주어진환경과 인공지능이 직접 상호작용해 인공지능의 행동을 점점 수정해나가도록 학습함 - 성공적인 행동에 상을 내리고, 잘못된행동에 벌을 줘서 인공지능이 직접 자신의 생동을 개선하게 함 - ..
머신러닝의 이상치 탐지 기법과 적용사례 이상치탐지(Anomaly Detection)란? - 데이터에서 예상과는 다른 패턴을 보이는 개체 또는 자료를 찾음 - 학습데이터를 기반으로 기존 데이터들과는 다른 특성을 갖는 데이터를 찾는 모형을 만드는 방법임 - 사이버보안, 의학분야, 금융분야, 행동패턴 분야 등 다양한 분야에 적용될 수 있음 - 이상탐지는 종종 분류(Classification)문제와 혼동되는데 분류는 두 범주를 구분할 수 있는 경계면을 찾는 것 - 이상탐지는 다수의 범주를 고려해서 이상치가 아닌 데이터들의 sector 를 구분짓는 것 - 이상탐지는 크게 분류기반, NN기반, 군집화기반, 통계적 기법, 스펙트럴 기법 등으로 나뉜다. 이상치탐지기법 적용사례 - 이상거래탐지: 신용, 카드, 보험과 같은 금융계에서 불법 및 악용 사례를 탐지..
인공지능에서 머신러닝과 딥러닝의 차이 ○ 인공지능이란? 인공지능은 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터가 할 수 있도록 하는 기술임 - 즉 컴퓨터가 사람처럼 생각을 하고 행동할 수 있으며 사람이 반복해서 했던 행동들을 대신해 주거나 사람이 실수할 수 있는 영역에서 그것을 대신해서 정확하게 판단해주는 역할을 함 - 인공지능은 1950년대에 등장했으며 '컴퓨터가 사람처럼 스스로 생각하고 행동을 할 수 있을까?' 라는 생각에서 부터 시작됨 ※ 인공지능 > 머신러닝 > 딥러닝 ○ 머신러닝(입력데이터를 이용해 알지못하는 변수를 반복적으로 학습해나가면서 예측하는 알고리즘) - 기계가 학습하는 모든걸 통칭하고 이미 있는 특징들을 이용해서 학습을 함 - 훈련데이터를 통해 학습된 속성을 기반으로 예측 및 분류 - 예를들어 사람의 얼굴을 분석한다고..