전체 글 125

19장) 세상에 없는 얼굴 GAN

1.생성적 적대 신경망(GAN, Generative Adversarial Networks) 딥러닝의 원리를 활용해 가상의 이미지를 생성하는 알고리즘 예를 들어 얼굴을 만든다면, 이미지 픽셀들이 어떻게 조합되어야 우리가 생각하는 얼굴의 형상이 되는지를 딥러닝 알고리즘이 예측한 결과가 나옴 적대적(adversarial) 진짜 같은 가짜를 만들기 위해 GAN 알고리즘 내부에서 적대적 경합을 진행 생성자(Generator) 가짜를 만들어 내는 파트 판별자(Discriminator) 진위를 가려내는 파트 DCGAN(Deep Convolutional GAN) 페이스북의 AI 연구팀이 만든 GAN 알고리즘으로, 초기의 GAN을 보완한 알고리즘 2. 생성자 가상의 이미지를 생성 처음엔 랜덤한 픽셀 값으로 채워진 가짜 ..

18장) 시퀀스 배열로 다루는 순환 신경망(RNN)

인공지능이 문장을 듣고 이해한다는 것 여러 데이터가 순서와 관계없이 입력되던 것과는 다르게 과거에 입력된 데이터와 나중에 입력된 데이터 사이의 관계를 고려해야 하는 문제가 발생 순환 신경망을 통해 해결 1. RNN(Recurrent Neural Network) 1)RNN 여러 개의 데이터가 순서대로 입력되었을 때 앞서 입력받은 데이터를 잠시 기억해 놓는 방법 기억된 데이터의 중요도를 판별하여 별도의 가중치 부여한 후 다음 데이터로 이동 이 작업을 반복하기 때문에 다음 층으로 넘어가기 전에 같은 층을 맴도는 것처럼 보여서 RNN이라 부름 Ex) "오늘 주가가 몇이야?" 앞에 나온 입력에 대한 결과가 뒤에 나오는 입력 값에 영향을 미침 이를 통해 비슷한 두 문장이 입력되었을 때 그 차이를 구별하여 출력 값에..

17장) 딥러닝을 이용한 자연어 처리

자연어란 우리가 평소에 말하는 음성이나 텍스트를 의미 자연어 처리는 이러한 음성이나 텍스트를 컴퓨터가 인식하고 처리하는 것 1. 텍스트의 토큰화 토큰(token) 텍스트를 단어 별이나 문장 별, 형태소별로 나눈 하나의 단위 토큰화(tokenization) 입력된 텍스트를 잘게 나누는 과정 케라스의 text 모듈의 text_to_word_sequence()를 사용해 토큰화 from tensorflow.keras.preprocessing.text import text_to_word_sequence # 전처리할 텍스트를 정합니다. text = '해보지 않으면 해낼 수 없다' # 해당 텍스트를 토큰화합니다. result = text_to_word_sequence(text) print("\n원문:\n", text..

2-4) HDFS 기능 2

1. WebHDFS REST API HDFS는 REST API를 이용해 파일을 조회하고 생성, 수정, 삭제하는 기능을 제공 이 기능을 통해 원격지에서 HDFS의 내용에 접근 REST API를 사용 #hdfs-site.xml dfs.webhdfs.enabled true dfs.namenode.http-address 0.0.0.0:50070 파일 리스트 확인 curl 명령을 이용하여 요청을 처 # /user/hadoop/ 위치를 조회 $ curl -s http://127.0.0.1:50070/webhdfs/v1/user/hadoop/?op=LISTSTATUS 2. HDFS 암호화 민감정보의 보안을 위해 암호화 기능을 제공 디스크에 저장되는 파일을 암호화하여 저장 HDFS의 디렉토리에 접근할 때 하둠 KMS를..

16장) 이미지 인식의 꽃, CNN 익히기

1. 컨볼루션 신경망(CNN) 입력된 이미지에서 다시 한번 특징을 추출하기 위해 커널(슬라이딩 윈도우)을 도입하는 기법 입력된 이미지가 다음과 같을 때 각 칸에 가중치가 들어있는 2x2 커널을 준비 커널을 이미지에 한 칸씩 움직이며 적용 결과를 정리하면 다음과 같다. 이렇게 해서 새롭게 만들어진 층을 컨볼루션(합성곱)이라고 부름 컨볼루션을 통해 입력 데이터로부터 더욱 정교한 특징을 추출 가능 케라스에서 컨볼루션 층을 추가하는 코드 model.add(Conv2D(32, kernel_size=(3,3), input_shape=(28, 28, 1), activation='relu')) Conv2D() 첫 번째 매개변수 커널을 몇 개 적용할 것인지 결정 예제에서는 32개의 커널 적용 kernel_size=(행,..

2-3) HDFS 기능 1

1. HDFS Federation 디렉토리(네임 스페이스) 단위로 네임노드를 등록하여 사용하는 것 파일, 디렉토리의 정보를 가지는 네임 스페이스와 블록의 정보를 가지는 블록 풀을 각 네임 노드가 독립적으로 관리 네임스페이스의 블록풀을 네임스페이스 볼륨이라고 하고, 네임스페이스 볼륨은 독립적으로 관리되기 때문에 하나의 네임노드에 문제가 생겨도 다른 네임노드에 영향 X ex) user, hadoop, tmp 3개의 디렉토리가 존재할 때, /user, /hadoop, /tmp 디렉토리 단위로 총 3개의 네임노드를 통해 파일을 관리 2. HDFS 고가용성(High Availability) 고가용성 서버, 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간동안 지속적으로 정상 운영이 가능한 성질 고가용성은 ..

2-3) 블록과 세컨더리 네임노드

1. 블록 HDFS 파일은 지정한 크기의 블록으로 나누어지고, 각 블록은 독립적으로 저장 블록은 탐색 비용을 최소화하기 위해 128MB와 같이 매우 큼 블록이 크면 하드디스크에서 블록의 시작점을 탐색하는 데 걸리는 시간을 줄임 네트워크를 통해 데이터를 전송하는데 더 많은 시간을 할당 여러 개의 블록으로 구성된 대용량 파일을 전송하는 시간은 디스크 IO 속도에 크게 영향 2. 블록 추상화의 이점 파일 하나의 크기가 단일 디스크의 용량보다 더 커짐 큰 파일을 블록 단위로 나누어 단일 디스크의 용량보다 큰 파일 저장 가능 파일 단위보다 블록 단위로 추상화를 하면 스토리지의 서브 시스템을 단순하게 구현 가능 파일 탐색 지점이나 메타정보를 저장할 때 사이즈가 고정됨으로 구현이 단순 복제를 구현할 때 매우 적합 블..

2-2) HDFS

1. HDFS Hadoop Distributed File System 범용 하드웨어에서 동작하고, 장애 복구성을 가지는 분산 파일 시스템 배치러리를 위해 설계됨 빠른 데이터 응답시간이 필요한 작업에 부적합 네임노드가 단일 실패 지점(SPOF)이 되기 때문에 네임노드 관리가 중요 특징 블록 복제를 이용한 장애 복구 장애 복구를 위해 각 블록을 복제하여 저장 기본 복제 단위는 3개로, 하나의 블록이 3개의 블록으로 복제 문제가 생기면 다른 블록을 이용해 데이터 복구 읽기 중심 데이터를 한 번 쓰면 여러 번 읽는 것이 목적 파일의 수정 지원 X 데이터 지역성 데이터가 있는 곳에서 알고리즘을 처리하여 네트워크를 통해 대용량 데이터를 이동시키는 비용을 줄임 2. 구조 마스터 - 슬레이브 구조 하나의 네임노드와 여..

2-1) 하둡이란?

하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는 대신, 적당한 성능의 범용 컴퓨터 여러 대를 클러스터화하고, 대용량 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임워크 1. 하둡의 구성 요소 Hadoop Common 하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈 Hadoop HDFS 분산저장을 처리하기 위한 모듈 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장 Hadoop YARN 병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당 Hadoop Mapreduce 분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈 Hadoop Ozone 하둡을 위한 오브젝트 저장소 2. 하둡의 장단점 장점 오픈소스로 라..

1-3) 빅데이터 에코시스템

빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거침 이 단계를 거치는 동안 여러가지 기술을 이용하여 처리되고, 이 기술들을 통틀어 빅데이터 에코 시스템(Bigdata Eco System)이라고 함 1. 수집 기술 빅데이터 분석을 위한 원천 데이터를 수집하는 기술 원천 데이터는 실시간 데이터 수집 기술, 배치 데이터 수집기술이 있음 원천 데이터의 종류에도 로그 데이터, DB 데이터, API 호출 데이터 등 여러가지 종류가 있음 ex) Flume, Kafka, NiFi 등 2. 작업 관리 기술 빅데이터를 분석하는 여러가지 단계를 효율적으로 생성, 관리하고 모니터링 할 수 있게 도와주는 기술 ex) Airflow, Azkaban 등 3. 데이터 직렬화 빅데이터 에코 시스템이 다양한 기술과 언어로..