목록인공지능 (21)
K 개발자
논문 : 'Rich feature hierarchies for accurate object detection and semantic segmentation'-Tech report (v5) R-CNN을 통한 객체 감지 R-CNN의 물체 감지 시스템은 세 개의 모듈로 구성되어 있다. 첫 번째는 범주 독립적인 지역 제안을 생성한다. 이러한 제안은 검출기에서 사용할 수 있는 후보 탐지 세트를 정의한다. 두 번째 모듈은 각 영역에서 고정 길이 특징 벡터를 추출하는 대형 컨볼루션 신경망이다. 세 번째 모듈은 클래스별 선형 SVM 세트이다. R-CNN의 개요 그림은 R-CNN의 방법에 대한 개요를 제시하고 결과 중 일부를 강조한다. 입력 이미지를 취한다. 약 2,000개의 상향식 지역 제안을 추출한다. 대규모 컨볼루..
'Object Detection in 20 Years: A Survey' 논문으로 20년 동안의 객체 탐지 모델의 동향을 살펴본다. 이 논문은 20년 역사에서 객체 탐지 모델의 일부 이정표, 핵심 기술, 속도 향상 방법, 탐지 응용 프로그램, 데이터 셋, 측정 기준을 광범위하게 검토할 뿐만 아니라 커뮤니티가 현재 직면하고 있는 과제와 이러한 탐지기를 추가로 확장하고 개선할 수 있는 방법에 대해 설명한다. 컴퓨터 비전에 관심이 있는 사람은 이 논문을 직접 읽어보길 추천한다. 20년 동안의 객체 탐지 지난 20년 동안 객체 탐지의 진전은 일반적으로 두 가지 역사적 기간을 거쳤다는 것이 널리 받아들여지고 있다. 그림과 같이 2014년 이전의 전통적인 객체 감지 기간과 2014년 이후 딥러닝 기반 감지 기간의 ..
보상을 최적화하기 위한 학습 강화 학습reinforcement learning(RL)에서 소프트웨어 에이전트agent는 관측observation을 하고 주어진 환경environment에서 행동action을 하고 그 결과로 보상reward을 받는다. 에이전트의 목적은 보상의 장기간 기대치를 최대로 만드는 행동을 학습하는 것 간단히 말해 에이전트는 환경 안에서 행동하고 시행착오를 겪으며 기쁨(양positive의 보상)이 최대가 되고 아픔(음negative의 보상)이 최소가 되도록 학습 양의 보상이 전혀 없을 수도 있다. (e.g. 에이전트가 미로 속을 움직인다면 매 타임 스텝마다 음의 보상을 받기 때문에 가능한 한 빨리 탈출구를 찾는 것이 좋을 것) 정책 탐색 소프트웨어 에이전트가 행동을 결정하기 위해 사용..
오토인코더autoencoder 오토인코더는 입력을 받아 효율적인 내부 표현(잠재 표현latent representation, 코딩coding)으로 바꾸고 (바라건대) 입력과 가장 가까운 어떤 것을 출력 오토인코더는 항상 두 부분으로 구성 입력을 내부 표현으로 바꾸는 인코더encoder(또는 인지 네트워크recognition network)와 내부 표현을 출력으로 바꾸는 디코더decoder(또는 생성 네트워크generative network) 출력층의 뉴런 수가 입력 개수와 동일하다는 것을 제외하면, 일반적으로 오토인코더는 다층 퍼셉트론(MLP)과 구조가 동일 오토인코더가 입력을 재구성하기 때문에 출력을 종종 재구성reconstruction이라고 부른다. 비용 함수는 재구성이 입력과 다를 때 모델에 벌점을..
Char-RNN RNN을 훈련하여 문장에서 다음 글자를 예측 (한 번에 한 글자씩 새로운 텍스트를 생성할 수 있다.) 순차 데이터셋을 나누는 방법 텍스트에 있는 글자는 섞으면 안 된다. 훈련 세트, 검증 세트, 테스트 세트가 중복되지 않도록 만드는 것이 중요 (두 세트 사이에 문장이 걸치지 않고 완전히 분리될 수 있도록 세트 사이에 간격을 두는 것도 좋은 생각) 시계열을 다룰 때는 보통 시간에 따라 나눈다. (경우에 따라 훈련할 시간 간격을 더 길게 하기 위해 다른 차원을 기준으로 나눌 수도 있지만 시간에 따라 나누는 것이 안전) 암묵적으로 RNN이 과거(훈련 세트)에서 학습하는 패턴이 미래에도 등장한다고 가정 다른 말로 하면 이 시계열 데이터가 (넓은 의미에서) 변하지 않는다stationary고 가정 ..
순환 뉴런recurrent neuron과 순환 층 순환 신경망recurrent neural networks은 (활성화 신호가 입력층에서 출력층 한 방향으로만 흐르는) 피드포워드 신경망과 비슷하지만 뒤쪽으로 순환하는 연결도 있다는 점이 다르다. (입력을 받아 출력을 만들고 자신에게도 출력을 보내는 뉴런으로 구성) 각 타임 스텝time step $t$ (또는 프레임frame) 마다 순환 뉴런은 $x_ {(t)}$와 이전 타임 스텝의 출력인 $y_ {(t-1)}$을 입력으로 받는다. (첫 번째 타임 스텝에서는 이전 출력이 없으므로 일반적으로 0으로 설정) 각 순환 뉴런은 입력 $x_ {(t)}$와 이전 타임 스텝의 출력 $y_ {(t-1)}$을 위한 두 벌의 가중치를 가진다. (이 가중치 벡터를 $w_ {x}..
합성곱 층convolutional layer 첫 번째 합성곱 층의 뉴런은 입력 이미지의 모든 픽셀에 연결되는 것이 아니라 합성곱 층 뉴런의 수용장 안에 있는 픽셀에만 연결 두 번째 합성곱 층에 있는 각 뉴런은 첫 번째 층의 작은 사각 영역 안에 위치한 뉴런에 연결 이런 구조는 네트워크가 첫 번째 은닉층에서는 작은 저수준 특성에 집중하고, 그다음 은닉층에서는 더 큰 고수준 특성으로 조합해나가도록 도와준다. 수용장 사이에 간격을 두어 큰 입력층을 훨씬 작은 층에 연결하는 것도 가능 (한 수용장과 다음 수용장 사이 간격을 스트라이드stride라고 한다.) 필터filter(합성곱 커널convolution kernel) 뉴런의 가중치는 수용장 크기의 작은 이미지로 표현될 수 있다. 층의 전체 뉴런에 적용된 하나의..
텐서플로에서 데이터를 효율적으로 적재, 파싱, 전처리 메모리 용량에 맞지 않는 아주 큰 규모의 데이터셋으로 딥러닝 시스템을 훈련해야 하는 경우가 많다. 다른 딥러닝 라이브러리를 사용해서는 대규모 데이터셋을 효율적으로 로드하고 전처리하도록 구현하기가 까다롭지만 텐서플로 데이터 API는 이를 쉽게 처리 텐서플로가 멀티스레딩, 큐, 배치, 프리페치prefetch 같은 상세한 사항을 모두 대신 처리해주며 데이터 API는 tf.keras와 잘 동작 기본 기능으로 데이터 API는 텍스트 파일(e.g. CSV 파일), 고정 길이의 레코드를 가진 이진 파일, 텐서플로의 TFRecord 포맷을 사용하는 이진 파일에서 데이터를 읽을 수 있다. (이 포맷은 길이가 다른 레코드를 지원) TFRecord는 일반적으로 (오픈 소..