2022/10 13

인위적으로 생성한 2그룹 데이터를 이용한 퍼셉트론 예제

퍼셉트론이나 지금의 신경망이나 단위 구조는 동일하다. 다수의 입력에 대해서 출력은 최소 “1” 과 “-1”( 또는 “0”)을 식별할 수 있는 이진 출력이 가능하다. 경우에 따라서는 분류(classification) 목적에 따라 그 이상의 라벨 값들을 가질 수 있다. 예를 들너 MNIST 수기문자판독문제는 “ ~9”까지의 10개, 그리고ImageNet 은 1000개의 라벨 값을 가진다. 2개의 변수로 표현되는 입력 데이터로는 평면 좌표계를 들 수 있다. 이런 입력 데이터에 대한 단위 신경망은 다음과 같이 나타낼 수 있다. 이진분류 시 출력 y 가 “1” 과 “-1”( 또는 “0”)인지 식별할 수 있어야 할 것이다. 아래의 퍼셉트론 예제는 인위적으로 생성한 golden eagle 과 horned owl 2종..

뉴론의 구조와 퍼셉트론, Shannon의 엔트로피, Cross Entropy?

1 뉴론의 구조 신경계 혹은 신경망은 기본적인 단위 구조를 가진다. 즉 이러한 뉴론들이 직병렬로 연결되어 복잡한 네트워크를 구성하게 된다. 아래 그림은 수상돌기의 시냅스를 통해 입력되는 신호의 자중치 부여를 통해 얻어지는 출력 결과가 활성화(activation) 수준의 문턱 전압을 넘는지 못넘는지 이진적으로 처리 후 축색돌기를 통하여 다음 뉴론에 전달하게 된다. 이때 뉴론에서 학습된 가중치값들을 기억하고 있으면 그 다음 입력에 대해서 생리적으로 대응이 가능해지게 된다. 부분의 수상돌기는 앞 단계에 위치한 뉴론으로부터 전기 신호의 입력이 일어나는 부분이다. 이 입력은 시냅스 인터페이스에 의해 뉴론의 핵에서 생화학적인 메카니즘 기반으로 가중(weighting) 처리되어 연산 되고 그 결과 생성된 전압이 문턱..

Iris flower data를 이용한 Rosenblatt 퍼셉트론 파이선 코딩

퍼셉트론 알고리듬에 따라 파이선으로 퍼셉트론 클라스 코딩을 해보자. ⓵ 퍼셉트론 클라스에 필요한 기본적인 파라메터로서 3가지 즉 learning rate, 학습횟수 및 랜덤 수 생성을 위한 seed 수를 준비하자. class 코드에 처음에 eta 값이 0.01 로 지정되어 있지만 메인 코드에서 instance 값으로 0.1 을 부여하게 되면 부여된 instance에 맞춰 class 내 self에 의해서 self.eta 값이 0.1로 변환된다. 마찬가지로 학습 횟수에 해당하는 n_ier를 class 코드에 처음에는 50 으로 두지만 instance 값으로 10의 값을 주면 self에 의해서 self.n_iter 값이 10으로 변환된다. seed 값을 예를 두어 1 로 두면 이 값이 바뀌지 않는한 항상 동일..

Rosenblatt N = 2 Perceptron Weight Update 알고리듬 Processing 코딩

알고리듬으로 설명되고 있는 Rosenblatt의 퍼셉트론 코드가 오래되어서인지 특히 오늘날의 경사하강법을 대신하는 그의 웨이트업데이트 알고리듬이 제대로 돌아가는 것인지 의문스럽게 느껴졌던 것이 사실이다. 퍼셉트론에 대한 유튜브 동영상 및 인터넷 검색 결과 Rosenblatt의 알고리듬에 직접 쓰여 있는 것은 아니지만 error 개념을 도입하여 이 부분을 처리하고 있었다. 중간에 필요한 의견을 넣어 작성하였지만 이 error 개념이 Rosenblatt이 직접 고안했던 기법인지 여부는 알 수 없으나 여하튼 Rosenblatt의 알고리듬을 잘 반영하는 기법인 듯하다. 아울러 후반에 400개의 점 데이터를 작도한 결과들이 있는데 Rosenblatt 의 N = 400 과 결코 혼동해서는 안된다. 이번 블로그 내용..

McCulloch과 Pitts, Rosenblatt, Minsky에 이르는 초창기 신경망 연구의 역사 명과 암

빛의 밝기에 반응하는 photocell로 입력 장치로 구성되는 Rosenblatt의 퍼셉트론의 중요한 용도는 400개의 센서를 통해 입력되는 데이터 처리에 의해 문자를 인식하는 것이다. 그가 사용했던 photocell 은 오늘날의 조도센서로 알려져 있는데 2개를 사용하여 random 한 입력 벡터를 실제로 생성할 수 있다. 그방법은 건물의 앞뒤에 각각 조도센서를 설치해 두면 서로 다른 값을 가지는 potocell 데이터 1세트가 얻어지며 하루 종일 해가 움직이므로 그 값의 변동이 있게 된다. 즉 숫자 예제 데이터가 아니라 현실적으로 발생하는 데이터이다. 지구상에서는 이 장치를 이용해 건물 주변의 조명을 자동으로 ON OFF 하는 수준에서 사용이 가능하겠지만 만약에 달나라에 기지를 태양 빛의 음영이 생성되..

Curved Lane Detection with YOLOv3

https://youtu.be/e4opzbUJyV4 파이선 오픈소스인 YOLOv3 에 커브진 차선을 검출할 수 있도록 OpenCV 비젼 코드를 넣어 자율주행에 필수적인 차선을 감지할 수 있도록 수정해 보자. 커브진 차선 탐색 코드는 아래의 원문을 참조하였다. Jupyter에서 다운받아 실행하면 손쉽게 커브진 차선 탐지를 실행시켜 볼 수 있다. 이 코드에서 커브차선 탐지 알고리듬을 뽑아내어 YOLOv3 앞 부분을 수정 편집하여 커브차선 탐섹과 주행 차량을 식별할 수 있도록 아래의 과정을 따라 편집해 보자. 참조 https://www.hackster.io/kemfic/curved-lane-detection-34f771 참조 https://github.com/kemfic/Curved-Lane-Lines 다음은..

자율주행 2022.10.25

11 알고리듬 특허

11-1 알고리듬 특허 개론 참조: Can you patent an algorithm? https://www.goldsteinpatentlaw.com/can-you-patent-algorithm/ 새로운 소프트웨어 코드를 개발했고 알고리듬에 특허를 낼 수 있는가? 개발자들이 종종 자신이 창안한 알고리듬이 지적 재산권법에 따라 보호될 수 있는지 알고 싶어 하는 일반적인 질문일 것이다. 산업혁명 이후로 실물적으로 볼 수 있거나 느낄 수 있는 장치에 관한 특허가 대세이었지만 현대에 들어서는 추상적으로 보일 수도 있는 컴퓨터 코드 알고리듬도 매우 중요한 특허 대상으로 여겨진다. 알고리듬에 특허를 낼 수 있는지 알게 되면 놀랄지도 모른다. 그 답은 질문 자체가 생각만큼 간단한 것이 아니기 때문이다. 그 답을 알아..

자율주행 2022.10.21

9장 자율주행을 위한 이미지 머신러닝 III

9-7 YOLOv3 OpenCV 차선 감지 자율주행을 연구하고자 하는 초보자라 할지라도 YoLov3를 설치하여 pretrained 된 학습 웨이트 값을 사용하여 비데오 영상을 대상으로 반드시 객체 탐지를 실습해 볼 필요가 있으며 더 나아가 단편적으로 실습했던 OpenCV 비젼 코드에 의한 차선감지 코드를 작성하여 YoLov3 에 삽입하여 나름대로의 간단한 ADAS(Advanced Driving Assistance System) 수준의 코드를 작성해 보면 향 후 자율주행을 위한 인공지능 코드 개발에 자신감이 크게 들 것이라 본다. YoLov3 라이브러리에 numpy를 추가한다. 휴 변환에서 π 값을 np.pi 로 참조하기 위함이다. 이어지는 아래의 # 처리된 내용들은 사용자 PC에 GPU가 없으므로 배제하..

자율주행 2022.10.21

9장 자율주행을 위한 이미지 머신러닝 II

9-6 YOLO(You Once Look Only) Lane Detection http://ejleep1.tistory.com/1395 한편 컴퓨팅 속도 차원에서 타 알고리듬과는 비교할 수 없을 정도로 빠른 YOLO 알고리듬에 대해서 살펴 보기로 한다. 처음부터 속도를 중시했기 때문에 어쩌면 상업적인 자율주행을 목표로 개발이 이루어져 왔을 수도 있다. YOLOv3 를 사용하여 여러 종류의 짐승들을 포함하고 있는 이미지를 object detection 해보자. 탐지(Detection) 결과를 요약해 보면 말 3마리, 개 5마리는 정확하게 Bounding Box로 검출이 되었고 작은 크기의 고양이들은 놓친 결과를 보여준다. 물론 YOLOv3 가 나름 괜찮은 object detector 이긴 하지만 objec..

자율주행 2022.10.21

Image Classification & Object Detection

1. 컨볼루션 네트워크(CNN, Convolutional Neural Network) 위 그림은 1981년 노벨 의학상을 수상하게 되었던 하버드 의대의 후벨(Hubel) 박사의 1959년도에 실시된 고양이 시각피질(visual cortex) 반응 실험 연구내용이다. 즉 고양이의 시각피질에 전극을 꽂은 상태에서 흰색 배경의 흑백 TV에서 기울어진 검정색 막대 모양을 병진 또는 회전시키면서 자극을 주게되면 일어나는 전기적 반응을 오디오로 들으면서 기록하였다. 이와같이 동물이나 인간의 시지각 현상을 신경망화 한 모델이 바로 CNN 이며 1990년대 말에 이르러서여 LeCun 교수의 LeNet을 통해 MNIST 수기문자 판독을 위한 알고리듬으로 사용되어 그 뛰어난 특성이 알려졌다. CNN 은 레이어 별로 점차 ..

자율주행 2022.10.21