728x90
300x250
728x90

슬라이딩 윈도우란?

- 고정 크기의 윈도우(마스크, 영역)을 이동하면서 윈도우 내 데이터를 이용하는 알고리즘

- 네트워크 호스트 간 패킷 흐름을 제어하기 위해서 고안됨.

 

 

 

네트워크와 서버 간의 연결 과정 3 way handshake

- 3 way handshake : 클라이언트와 서버간 연결 과정

1. 클라이언트(접속자)가  서버에 접속 요청 메시지(SYN)를 보낸다.

2. 서버는 접속 허가시 클라이언트에게 접속 요청 수락(SYN + ACK)을 보낸다.

 * Ack(Acknowledgement) : 긍정 응답

3. 클라이언트는 서버에 수락 확인(ACK)를 보내고 서버와 연결이 성립 ESTABLISHED된다.

https://sjlim5092.tistory.com/35

슬라이딩 윈도우와 패킷 흐름 제어

- TCP 통신같이 연결 지향 프로토콜의 경우 패킷이 하나 하나 정상적으로 전달되었는지 확인(ACK)을 함.

- 패킷이 분실된 경우 재전송이 필요.

- 윈도우에 모든 패킷을 전송하고, 모든 패킷들이 전달이 확인 되면 윈도우를 옆으로 이동 시켜 다음 패킷을 전송시킴.

 

 

 

 

 

 

투포인터와 슬라이딩 윈도우

- 투포인터의 경우 정렬된 배열에서 두 포인터를 이용하여 알고리즘 문제를 풀이해감.

- 슬라이딩 윈도우는 정렬 여부에 상관 없이 일정 크기의 윈도우를 사용함.

 

이름 정렬 여부 윈도우 사이즈 이동
투 포인터 대부분 정렬됨 가변 좌우 포인터 양뱡향
슬라이딩 윈도우 X 고정 좌 혹은 우 단방향

https://9327144.tistory.com/entry/%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0-%EA%B8%B0%EB%B2%95?category=945533

 

 

 

 

 

 

슬라이딩 윈도우 예시

1. 물체 검출 Object Detection

- 고정 크기의 윈도우의 이미지를 합성곱 신경망에 입력으로 주어 물건을 검출

- 다양한 크기의 물체를 검출하기 위해 다양한 크기의 윈도우를 사용.

- 계산 비용이 너무 커져 잘 사용되지 않음.

https://www.researchgate.net/figure/Object-detection-by-sliding-window-approach_fig1_266215670

 

2. 이동 평균 Moving Average

- 특정 지점의 값을 앞 뒤 일정 구간의 평균 값으로 지정

- 노이즈 제거(스무딩)에 주로 사용됨.

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

퀵 정렬 quick sort  (0) 2021.04.07
그래프 정리 2  (0) 2021.02.24
그래프 정리 1  (0) 2021.02.23
[리트코드 문제 풀기] 연결 리스트  (0) 2021.01.27
[리트코드 문제 풀기] 배열  (0) 2021.01.20
728x90

0. 초록

- 하나의 심층 신경망으로 이미지에서 물체들을 검출하는 방법을 소개함.

- 우리가 고안한 SSD라는 방법은 바운딩 박스들의 출력 공간을 특징맵 위치 마다 다양한 종횡비와 스케일을 가지는 디폴트 박스들의 집합으로 이산화를 시킨다.

- 추정을 할때, 신경망은 각 디폴트 박스의 물체 카테고리에 대한 스코어를 만들어내고, 해당 박스가 물체 형태에 더 잘맞도록 조정치를 만들어 준다.

- 추가적으로 신경망은 다양한 크기의 물체들을 다루기 위해서 다양한 해상도에서의 특징맵으로부터 얻은 예측치를 혼합시킨다.

- SSD는 영역 제안 생성과 픽셀이나 특징 리샘플링 단계 등을 없앰으로서 비교적 간단하며, 하나의 신경망에 모든 연산과정을 담아내었다.

- 이렇게 하여  SSD는 쉽게 학습할수 있고, 직관적으로 검출 부분을 시스템에 합쳐내었다.

- PASCAL VOC, COCO, ILSVRC 데이터셋으로 실험한 결과 SSD는 훈련과 추론 시 물체 제안 단계에서 유용하고, 더 빨랐습니다

- 300 x 300 입력을 넣은경우 SSD는 74.3% mAP.(VOC2007 테스트), 59FPS(엔비디아 타이탄X)를 얻었으며, 512 x 512 입력시 Faster R-CNN을 능가하는 76.9% mAP를얻었습니다.

- 다른 단일 단계 방법들과 비교해서도 SSD가 입력 이미지가 더 작은 상황에서도 더 높은 정확도를 가졌습니다.

300x250
728x90
300x250
728x90

0. 초록

- 라벨되지 않은 큰 말뭉치로 학습된 연속적인 단어 표현들은 많은 자연어 처리 작업에서 유용합니다.

- 유용한 모델은 각 단어에 서로 구별되는 벡터를 줌으로서 단어의 형태를 무시하고 학습을 시킵니다.

- 이 점이 거대한 사전과 많은 드문 단어들로 언어를 다루는 경우 문제점이라 할수 있습니다.

- 본 논문에서는 스킵그램 모델에 기반한 새로운 방법을 소개하고자 하는데, 각 단어들은 n그램의 단어 가방으로 표현됩니다.

- 벡터 표현은 각 단어 n그램과 연관되어, 단어들은 이러한 표현의 합으로 나타내집니다.

- 이 방법으로 모델이 거대한 말뭉치를 빠르게 학습할수있게하며, 훈련 데이터에 나타나지 않는 단어들에 대한 단어 표현들도 계산할 수 있게됩니다.

- 또 우리의 단어 표현을 단어 유사도와 아날로그 작업에서 다른 9가지의 언어들에서도 평가해보았습니다.

- 최근 제안된 형태학적인 단어 표현들과 비교함으로서, 우리의 벡터가 이런 작업들을 하는데 좋은 성능을 내는것을 보여주고자 합니다.

300x250
728x90

0. 초록

- 본 논문에서는 (문법과 의미론적인) 단어 사용에 있어서 복잡한 특성과 다양한 언어적 컨텍스트를  어떻게 사용하는지를 고려한 새로운 타입의 심층 컨텍스트화된 단어 표현 deep contextualized word representation을 소개하고자 합니다.

- 우리의 단어 벡터는 많은 량의 텍스트 말뭉치로 학습된 심층 양방향 언어모델 deep bidirectional language model(biLM)의 내부 상태 함수로 학습됨.

- 이 표현은 기존의 현존하는 모델에 간단하게 추가시킬수가 있으며, 대표적인 NLP문제들 질의응답, 감정분석, 텍스처 분석 등에서 큰 성능 향상을 보였습니다.

- 우리는 또한 선학습된 신경망의 내부정보를 노출 시키는것이 중요하다는 사실과, 다운스트림 모델에 다른 타입의 준지도 신호들을 섞어본 결과를 분석하여 보여주고자 합니다.

300x250
728x90

0. 초록

- 심층 신경망을 잘 학습하기 위해서는 수 많은 훈련 샘플을 필요로 한다는 것에 많은 사람들이 동의를 하고 있다.

- 이 논문에서는 신경망과 훈련 방법을 소개하고자 하는데, 데이터 증강을 이용하여 더 효율적으로 샘플을 사용하고자 한다.

- 이 아키텍처는 컨텍스트를 찾아내기 위한 수축 경로와 이를 대칭적으로 정밀한 위치 추정을 하는 팽창 경로로 이루어져 있다.

- 이 신경망을 아주 적은 수의 이미지만으로 end-to-end로 학습하여, ISBI 대회의 미세 이미지를 이용한 세그먼테이션 분야에서 지난 최고의 방법을 능가하였고, 2015년 ISBI 세포 추적 대회에서 큰 격차로 우승하였다.

- 이 신경망은 빨라, 512 x 512 크기의 이미지도 GPU로 몇초안에  세그먼테이션을 수행할 수 있음.

 

1. 소개

- 최근 2년간 심층 신경망을 이용하는 방법이 많은 시각 인지 작업 분야에서 높은 성과를 보이고 있다.

- 합성곱 신경망은 나온지 오랜 시간이 지났지만, 사용 가능한 훈련셋의 크기와 신경망의 크기 때문에 잘 사용되지 못하였었다.

- 하지만 Krizhevsky가 100만개로 이루어진 이미지넷 데이터셋을 8계층의 수백만 파라미터로 구성된 신경망을 지도 학습을 함으로서 시발점이 되었고, 그 이래로 더 크고 깊어진 신경망이 나오고 있다.

 

- 기존의 합성곱 신경망은 이미지가 주어지면 단일 클래스 라벨을 출력하는 분류 작업에만 사용되어옴.

- 하지만 많은 시각 작업 분야에서, 특히 생체 이미지 처리에서는 위치에 대한 정보도 필요로 하고있는데, 예를 들어 클래스 라벨이 각 픽셀단위로 있어야 한다.

- 게다가 생명의악 분야에도 수많은 훈련할 이미지들이 있다. Ciresan은 슬라이딩 윈도우를 사용하여, 해당 로컬 지역(패치), 픽셀을 입력으로 주어 각 픽셀의 라벨을 예측하는 신경망을 학습하였는데, 이 신경망은 위치를 추정하고, 훈련 이미지의 수보다 패치 단위의 훈련 데이터가 훨씬 컸다. 이 신경망은 IBSI 2012  EM 세그먼테이션 대회에서 큰 격차로 우승하였다.

 

- Ciresan의 방법은 두가지 문제점이 있었는데, 신경망은 각 패치 단위를 개별적으로 돌리고, 패치들간에 어쩔수 없이 많은 부분이 겹치는 탓에 꽤 느렸다.

- 두번째로 위치 추정의 정확도와 컨텍스트 사용의 트레이드 오프가 있었는데, 큰 패치일 수록 위치 추정 정확도를 줄이는 형향을 주는 더 많은 맥스 풀링 레이어가 필요하였고, 작은 패치일경우 적은 컨택스트밖에 보지못하였다.

300x250
728x90

0. 초록

- 이 논문에서는 물체 검출을 위한 고속의 영역 기반 합성곱 신경망 Fast R-CNN을 소개함.

- Fast R-CNN은 기존의 작업을 기반으로 해서 심층 합성곱 신경망을 이용하여 효율적으로 물체 영역들을 분류함.

- 이전의 연구와 비교할때, Fast R-CNN은 여러 벼화를 통해 훈련과 테스트 속도는 빠르고, 검출 정확률을 더 높임.

- Fast R-CNN은  VGG16 신경망을 기반으로 R-CNN보다 훈련시에는 9배, 테스트시에는 213배 더 빨라졌으며, PASCAL VOC 2012에서 더 높은 mAP를 도달할 수 있었습니다.

- SPPnet과 비교할때 Fast R-CNN은 VGG16 신경망을 학습해서 3배 더 빨라지고, 훈련시에는 10배, 그리고 더 정확한 결과를 얻었습니다.

- Fast R-CNN은 카페를 이용해서 파이썬과 C++로 구현되었고, MIT License 오픈소스로 사용 가능합니다.

 

 

1. 소개

 

1.1 R-CNN과 SPPnet

 R-CNN은 합성곱 신경망으로 물체 제안 영역들을 높은 정확도로 분류할수 있었으나 아래와 같은 단점들을 가지고 있습니다.

 1. 훈련 과정이 여러 단계의 파이프라인으로 구성되어있음.

 - R-CNN은 먼저 합성곱 신경망을 로그 비용을 사용해서 물체 제안에 맞게 미세조정을 거칩니다.

 - 그 다음 SVM으로 합성곱 신경망 특징을 학습함. 이 SVM은 소프트맥스 분류기를 대신하여 물체검출기 역활을 함.

 - 세 번째 훈련 단계에서는 바운딩 박스 회귀기가 학습딤.

 2. 학습하는데 공간과 시간적 비용이 큼.

  - SVM과 바운딩 박스 회귀기를 돌리기 위해서, 매 이미지마다 제안 영역들의 특징들을 추출해서 디스크에 저장해야함.

  - VGG16 같은 심층 신경망의 경우 VOC07 훈련 셋 이미지 5K를 학습하는데만 2.5GPU-일이 걸림.

  - 특징들을 저장하는데만 수 백 기가바이트용량을 필요로함.

 3. 물체 검출이 느림

  - 테스트시 특징들을 테스트 이미지로부터 각 물체 제안 영역으로부터 추출이 되는데, 검출 과정만 이미지당 47초가 걸림(GPU)

 

1.2 개선점

 우리가 제안한 알고리즘은 R-CNN과 SPPnet의 단점들을 고쳐 더 높은 속도와 정확도를 얻어내었으며, 학습과 테스트가 더 빨라졌으므로 이 알고리즘 이름을 Fast R-CNN이라고 함. Fast R-CNN은 아래와 같은 이점을 가짐

 

 1. R-CNN, SPPnet보다 높은 검출 퀄리티 (mAP)

 2. 훈련이 다중 작업 비용을 사용하여 한 단계로 이루어짐

 3. 훈련 과정으로 모든 신경망 레이어가 갱신됨.

 4. 특징 캐싱에 디스크 공간을 필요로 하지 않음.

 

2. Fast R-CNN 아키텍처와 학습

그림 1. Fast R-CNN 아키텍처. 입력 이미지와 다중 관심 영역(ROI)이 완전 합성곱 신경망에 입력으로 들어갑니다. 각 ROI는 고정 크기의 특징 맵으로 풀되고, 완전 연결 레이어를 통해 특징 백터로 맵핑됩니다. 이 신경망은 ROI당 두 출력 벡터를 가집니다.

 

2.1 ROI Pooling Layer

 

2.2 선학습된 신경망으로 초기화

 

2.3 검출에 맞게 미세 조정하기

 

2.4 스케일 불변성

300x250
728x90

Vectorizing Across Multiple Examples (C1W3L04)

- 여러 훈련 샘플을 벡터화 하여 한번에 처리하기

- 지난 시간에는 하나의 샘플에 대해 신경망 출력을 구하는 과정을 보았으나 이번에는 훈련 셋 전체를 한번에 하는 과정을보자.

- 벡터화처리하지 않는다면 모든 훈련 샘플에 대해서 반복문을 통해서 계산하여야 함.

- 길이가 n_x인 벡터 x^i를 수평 방향으로 쌓아 n_x x m 크기의 훈련셋 X를 준비함.

- 가중치 행렬과 훈련셋 X를 점곱 -> +편향 -> 시그모이드를 적용하여 활성 출력을 구한다.

- A의 행은 #번째 은닉 유닛의 결과, 열은 #번째 훈련 샘플에 대한 결과

 

 

300x250
728x90

Neural Network Overview (C1W3L01)

- 신경망을 어떻게 만들어내는지 간략하게 보자.

- 입력 x, 가중치 w, 편향 b로 출력 z를 구하고, 활성화 함수로 활성 값 a를 구함.

- 그 다음 활성 결과 a와 타겟 y를 통해 비용을 구하자.

 

 

 

 

 

Neural Network Representations (C1W3L02)

- 신경망 표현들에 대해서 살펴보자.

- 입력층, 은닉층, 출력층

- 훈련셋은 입력 x와 출력  y로 구성.

- 아래의 예시는 2층 신경망. 입력층을 세지 않음.

- 각 은닉층 유닛에는 대응되는 가중치와 편향값들을 가짐.

 

 

 

Computing Neural Network Output (C1W3L03)

- 지난 시간 은닉층이 하나인 신경망을 봄. 이번에는 어떻게 신경망이 출력을 계산하는지 자세히 살펴보자.

 * 로지스틱 회귀 연산 과정을 여러번 반복함.

- 위 이미지의 연산 과정을 3, 4번째 은닉 유닛 계산에도 동일하게 수행됨.

- 가중치 행렬과 편향을 더하고, 시그모이드를 적용하여 출력 벡터 z을 구함.

- 두번째 은닉층 계산만 보면 로지스틱 회귀와 유사함.

- 훈련셋을 열로 쌓으면 한 훈련 샘플이 아닌 전체 훈련셋으로 계산 가능

 

300x250

+ Recent posts