인공지능

    [인공지능][실습] 순환 신경망(SimpleRNN) 모델로 IMDB 리뷰 감성 분류하기 - (원핫인코딩, 단어 임베딩)

    순환 신경망(RNN)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] 순환 신경망(Recurrent Neural Network) - RNN 모델 완전 정복하기 : https://itstory1592.tistory.com/36 이번 포스팅에서는 지난 글에 이어서 순환 신경망으로 IMDB 리뷰 데이터셋을 훈련시키고, 리뷰가 긍정적인지 부정적인지 감성을 분석하는 모델을 만들어보도록 하자. IMDB 리뷰 데이터셋은 유명한 인터넷 영화 데이터베이스인 imdb.com 사이트에서 수집한 리뷰를 감상평에 따라 긍정과 부정으로 분류해 놓은 데이터셋이다. 총 50,000개로 이루어져 있고 훈련, 테스트 데이터에 따라 각각 25,000개씩 나누어져 있다. 이 데이터셋을 두 가지 방법으로..

    [인공지능][개념] 순환 신경망(Recurrent Neural Network) - RNN 모델 완전 정복하기

    순환 신경망 (RNN) 순환 신경망(Recurrent Neural Network)은 일반적인 완전 연결 신경망과 거의 동일하다. 다만, 완전 연결 신경망에 이전 데이터의 처리 흐름을 순환하는 고리를 하나 추가하면 된다. 위 그림처럼 순환 신경망은 뉴런의 출력이 다시 자기 자신으로 전달된다. 즉, 어떤 샘플을 처리할 때 이전에 사용했던 데이터를 재사용하는 셈이다. 순환 신경망에서 샘플을 처리하는 한 단계를 타임스텝이라고 부르고 층을 셀이라고 부른다. 예를 들어, 타임스텝 A에서 셀의 출력 Oa가 사라지는 것이 아니라 타임스텝 B의 셀로 주입되며, 타임스텝 B에서 셀의 출력 Ob가 다시 타임스텝 C의 셀로 주입된다. 이처럼 이전 데이터를 계속해서 다음 셀로 전달할 수 있다는 장점 덕분에 순환 신경망은 순차 ..

    [인공지능][실습] 합성곱 신경망(Convolution Neural Network) - CNN 모델로 패션 MNIST 데이터셋 훈련시키기

    합성곱 신경망(CNN)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] 합성곱 신경망(CNN) - 패딩(Padding)과 스트라이드(Strides), 풀링(Pooling) 완전정복하기 : https://itstory1592.tistory.com/23 지난 포스팅에서 합성곱 신경망(CNN)에 대한 구조와 개념에 대해 알아보았다. 패딩(Padding)을 통해 입력 크기와 출력 크기를 동일하게 만들어주고, 풀링(Pooling)층을 사용하여 특성맵의 크기를 줄이는 방법을 알 수 있었다. 합성곱 신경망은 이미지를 분류할 때 효과적인데, 예를 들어 숫자 이미지를 학습시켜 무슨 숫자인지를 맞춘다거나, 여러 옷 이미지 중에서 어떤 카테고리에 속하는 의류인지 맞추는 모델을 만들 수 ..

    [인공지능][개념] 합성곱 신경망(CNN) - 패딩(Padding)과 스트라이드(Strides), 풀링(Pooling) 완전정복하기

    합성곱 신경망 (CNN - Convolutional Neural Network) 합성곱 신경망(CNN)은 이미지 데이터를 분류할 때 효과적인 딥러닝이다. 예를 들어, 숫자 이미지를 학습시켜 무슨 숫자인지를 맞춘다거나, 여러 옷 이미지 중에서 어떤 카테고리에 속하는 의류인지 맞추는 모델을 만들 수 있다. 합성곱(Convolution)은 마치 입력 데이터에 도장을 찍어 유용한 특성만 드러나게 하는 것으로 비유할 수 있다. 이번 글에서는 합성곱의 동작 원리에 대해 알아보겠다. 이전 포스팅에서 알아본 인공 신경망(ANN) 밀집층에는 뉴런마다 입력 개수만큼 가중치가 존재했다. 즉, 모든 입력에 가중치를 곱하는 셈이다. 인공 신경망은 처음에 가중치와 절편을 랜덤하게 초기화한 다음 에포크를 반복하며, 경사 하강법 알..

    [인공지능][개념&실습] 최상의 신경망(ANN) 모델을 만들고 Save 해보자 - 드롭아웃(Dropout), 콜백(Callback), 조기 종료(Ealry Stopping)을 통한 신경망 최적화

    인공신경망(ANN)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념&실습] 인공 신경망(ANN)에 대해 알아보고 패션 MNIST 데이터셋으로 패션 아이템을 분류해보자 : https://itstory1592.tistory.com/21 지난 포스팅에서는 인공신경망(ANN)에 대한 이론을 알아보고 직접 신경망을 통해 패션 아이템을 분류하는 실습을 진행해보았다. 확실히 이전에 알아보았던 머신러닝 알고리즘에 비해 직접 모델의 구조를 만든다는 느낌이 강하게 들었을 것이다. 층을 추가하고 층에 있는 뉴런 개수와 활성화 함수를 결정하는 등 해야 하는 일이 추가되었기 때문이다. 그럼 모델에는 무조건 층을 많이 추가하고, 훈련을 많이 시키기만 하면 좋아지는 것일까? 정답은 NO! 복잡한..

    [인공지능][개념&실습] 인공 신경망(ANN)에 대해 알아보고 패션 MNIST 데이터셋으로 패션 아이템을 분류해보자

    이번 포스팅에서는 딥러닝(Deep Learning)이라고도 불리는 인공 신경망(ANN)에 대해 알아보고, 패션 MNIST 데이터셋으로 모델을 훈련시켜 패션 아이템을 분류해보는 실습을 해보도록 하자. 인공 신경망(ANN)은 우리가 흔히 이야기하는 딥러닝(Deep Laerning)과 거의 동의어로 사용되며, 위 그림처럼 층(layer)이라는 개념이 여러 개씩 쌓인 구조로 이루어져 있다. 층은 크게 '입력층 - 은닉층 - 출력층'으로 총 3종류로 구성되어 있다. 이 층(layer)에 대해 하나씩 알아보도록 하자. 입력층(Input Layer)은 단순히 값을 입력받는 역할만 수행하며, 특별히 계산을 하지는 않는다. 예를 들어, 지난 글에서 K-평균 모델로 3 종류의 과일을 분류할 때 사용했던 이미지를 떠올려보자..

    [인공지능][개념&실습] 차원 축소 알고리즘 - 주성분 분석(PCA)을 알아보고 사진의 크기를 줄여보자

    차원 축소 우리는 지난 포스팅에서 K-Means(++) 알고리즘을 사용하여 이미지를 비지도 학습으로 분류해보는 시간을 가져 보았다. 하지만 여기에는 한 가지 문제점이 존재한다. 우리가 이전 시간에 사용했던 이미지는 100px * 100px로, 총 10,000개의 픽셀로 이루어진 이미지였다. 즉, 하나의 이미지에는 10,000개의 차원(특성)이 존재한다는 것이다. (머신러닝에서는 특성을 차원(Dimension)이라고도 부른다.) 이게 정확히 무슨 뜻인지 사진을 통해 알아보자. 예시를 위해 가져온 자몽 이미지이다. 🍊 그냥 봤을 땐 그냥 이미지이지만 이 이미지를 확대해보면 . . . 이제는 이미지에서 자잘자잘한 픽셀들이 눈에 들어올 것이다. 학습을 하는 모델에게는 이런 픽셀 하나하나가 각각의 특성이 되며, ..

    [인공지능][개념] K-Means 알고리즘의 문제점과 'K-Means++ 클러스터링'을 통해 개선하기

    K-평균(K-Means)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] K-평균(K-means) 알고리즘과 군집화(Clustering) + 이너셔(Inertia) 이해하기 : https://itstory1592.tistory.com/17 [인공지능][실습] K-평균(K-Means) 알고리즘으로 과일(fruits) 사진을 분류해보고 엘보우(Elbow) 방법을 통해 최적의 k값을 찾아보자 : https://itstory1592.tistory.com/18 이번 포스팅에서는 지난 시간에 이어 K-Means++ 알고리즘에 대해 알아보도록 하자! K-Means++ 알고리즘은 기존 K-Means 알고리즘을 개선한 분류 알고리즘이다. 그런데 왜 K-Means++ 알고리즘이 생겨나..

    [인공지능][실습] K-평균(K-Means) 알고리즘으로 과일(fruits) 사진을 분류해보고 엘보우(Elbow) 방법을 통해 최적의 k값을 찾아보자

    K-평균(K-Means)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] K-평균(K-means) 알고리즘과 군집화(Clustering) + 이너셔(Inertia) 이해하기 : https://itstory1592.tistory.com/17 이번 글에서는 K-평균(K-means) 알고리즘을 사용하여 과일 사진을 비지도 학습으로 분류해보고 엘보우(Elbow) 방법을 통해 최적의 k값을 찾아보자. !wget https://bit.ly/fruits_300_data -O fruits_300.npy 우선, 과일 사진을 다운로드하기 위해서 위의 코드를 입력해준다. 파이썬에서는 !(느낌표)를 사용하고 리눅스 명령어를 입력하면 해당 명령어를 사용할 수 있다. 여기서는 웹 서버로부터 ..

    [인공지능][개념] K-평균(K-means) 알고리즘과 군집화(Clustering) + 이너셔(Inertia) 이해하기

    K-평균 (K-means) K-평균(K-means) 알고리즘은 데이터를 k개의 클러스터로 묶는 알고리즘이다. K-평균 알고리즘의 목적은 각 클러스터와의 거리 차이 분산을 최소화하여 데이터를 분류(Classification)하는 데에 있다. 클러스터(Cluster)라는 명칭이 생소하게 느껴질 수 있지만, 그룹이라는 단어같이 어떠한 요소들을 묶어놓은 단위체라는 뜻이며, 추가적으로 어떠한 요소들을 묶는 행위를 클러스터링(Clustering)이라고 부른다. K-평균 군집 알고리즘은 특정 데이터에서 평균값을 자동으로 찾아주는데, 이 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드(Centroid)라고도 부른다. 특히, 데이터 특징(feature)을 분석했을 때, 정답 역할을 하는 타겟(t..