**Autonomous driving tech./*Learning

자율주행과 인공지능 01

2wnswoo 2025. 2. 26. 19:48
  • 인공지능 : 인간이 가진 지적 능력을 컴퓨터로 구현하는 기술
  • 머신러닝 : 컴퓨터가 스스로 학습하여 성능을 향상시키는 기술
  • 딥러닝 : 인공신경망 방식으로 정보를 처리하는 기술
  • 인공지능 ) 머신러닝 ) 딥러닝 순서

위치추정 : 나는 지금 어디에 있는가?, 내 주변에는 무엇이 있는가?

판단 : A에서 B까지 어떻게 가야 하는가?

 

머신러닝의 구분
  • 지도학습 : 알고리즘을 학습시킬 때 입력( 문제 ) 과 출력( 정답 )의 데이터들로부터 새로운 입력에 대한 출력을 결정할 수 있는 패턴을 추출
    • 분류 : 주어진 데이터를 정해진 카테고리( 라벨 )에 따라 분류하는 문제. 이진 분류 문제, 다중 분류 문제가 있다.
    • 회귀 : 어떤 데이터들의 feature을 기준으로 연속된 값 또는 그래프를 예측하는 문제
  • 비지도학습 : 정답이 없고 무엇을 할지에 대한 명확한 지시가 없는 것
    • 군집화 : 서로 비슷해 보이는 학습 데이터를 찾아 그룹으로 만드는 것 Ex. 꼬리, 색깔, 크기로 강아지로 묶는 것
    • 이상탐지 : 데이터 세트에 특정 값을 표시하는 데 쓰일 수 있음
    • 연상 : 데이터 샘플의 특성을 다른 특성과 연관 짓는 것 Ex. 상품 추천 알고리즘, 분유 기저귀 검색 > 아기 장난감 추천
  • 강화학습 : 자신이 한 행동에 대해 reward를 받으며 학습하는 것
    • 에이전트
    • 환경
    • 상태
    • 행동 
    • 보상

--

퍼셉트론 : 인간의 신경망 뉴런을 모방한 것, 인공신경망 ANN의 기본 단위, 지도학습 방법임

 

역전파 : 다층 퍼셉트론에 학습 데이터를 반복해 제공하며 오류를 줄이는 방향으로 가중치 조절

 

단층 퍼셉트론 Single Layered Perceptron, SLP : 입력층, 출력층으로 구성됨

다층 퍼셉트론 Multi Layered Perceptron, MLP : 입력층, 은닉층 1개 이상 보유 ( 여러개의 노드로 구성 ), 출력층

은닉층의 개수가 여러 개( 2개 이상 ) 으로 이루어지는 경우 : 심층신경망( DNN, Deep Neural Network ) = 딥러닝

 

순전파 Forward propagation 의 문제점 : 신경망의 크기가 커질수록 최적화를 위한 연산량이 기하급수적으로 증가 

 

CNN, Convolution Neural Network
  • 인간의 시신경을 모방하여 만든 딥러닝 구조 중 하나
  • 컨볼루션 연산을 이용하여 이미지의 공간적인 정보 유지, 연산량 감소, 이미지 분류에서 좋은 성능을 보임
  • 자율주행차에서는 사람, 자동차, 장애물 분류에 많이 사용

 

컨볼루션의 정의 :

  • 합성곱을 의미
  • 두 함수를 서로 곱해서 합치는 것
  • 어떤 신호가 시스템을 거친 다음 나타나는 결과를 얻고자 할 때 사용되는 개념

옆으로 한 칸 이동

 

- 스트라이드 ( stride ) : 커널을 다음 컨볼루션 연산을 위해 이동시키는 칸 수

 

✅ CNN에서 커널(Kernel)은 작은 행렬(예: 3×3, 5×5 등)로 이미지에서 특징을 추출하는 역할을 합니다.
커널은 "필터(Filter)"라고도 불리며, CNN의 핵심 요소 중 하나입니다. 🚀

스트라이드 1일 때 2x2 행렬이 만들어짐

--

 

패딩 ( padding ) : 컨볼루션 결과의 크기를 조정하기 위해 입력 배열의 둘레를 확장하고 0으로 채우는 연산

패딩 2 스트라이드 1 일 때 4x4 필터를 적용시킨 모습

 

피처 맵( Feature map ) : 컨볼루션 필터( = 커널, 작은 행렬 )를 곱해서 나온 결과값

 

풀링( Poopling ) : 일정 크기의 블록을 통합하여 하나의 대푯값으로 대체하는 연산 > feature map의 크기 축소

 

1. 최댓값 풀링 ( Max pooling ) : 지정된 블록 내의 원소들 중에서 최댓값을 대표값으로 선택

2. 평균값 풀링( Average pooling ) : 블록 내 원소들의 평균값을 대푯값으로 사용

3. 확률적 풀링 ( Stochastic pooling ) : 블록 내의 각 원소가 원소값의 크기에 비례하는 선택확률을 갖도록 하고 이 확률에 따라 원소 하나를 선택 > 값의 크기에 비례하여 확률적으로 선택 > 항상 큰 값만 선택하는 Max poolig과 다르게, 랜덤성을 추가하여 다양한 패턴을 학습할 수 있도록 도와준다.

 

--

ReLU , Rectified Linear Unit 정류된 선형 유닛. *정류 : 0 이하 값, 음수값은 0으로 처리하고 양수값은 선형적으로 유지

 

활성화 함수( 데이터가 일정한 요건을 만족하면 활성화, 만족하지 못하면 비활성화 ) 의 대표적 방법

--

컨볼루션, ReLU, 풀링의 조합이 반복된 형태가 CNN
feature map은 Flatten 평탄화 작업을 통해 1차원 형태 배열로 바꿈, 심층신경망과 연결되어 최종 값으로 결과를 내보냄

 

Fully Connected Layer , 완전 연결층에서 어떤 객체인지 최종 예측을 한다.

그리고

Softmax 함수를 통해서 확률 값 출력

 

FC Layer의 출력 값 (Raw Score, Logits)

makefile
복사편집
고양이: 2.5 강아지: 1.2
 

Softmax 함수 적용 후 확률 값 변환

makefile
복사편집
고양이: 0.85 (85% 확률) 강아지: 0.15 (15% 확률)

 

*Softmax : 출력의 값이 0이상이면서 합은 1로 만드는 과정 수행, 출력을 하나의 확률 값으로 만듦

 

🔹 결론

Softmax 함수는 "이 객체가 특정 클래스에 속할 확률"을 계산하는 함수