분류 전체보기 27

[딥러닝 기초이론3-2] 미니 배치 학습(mini-batch learning)과 텐서(Tensor)

우리는 지금까지 적은 데이터들을 가지고 인공지능의 학습과정을 살펴보았지만, 실제로 인공지능을 학습시킬때는 굉장히 많은 데이터 쌍을 이용하게 되고, 그에 따라 처리해야하는 연산량이 증가하고 학습에 많은 시간이 소요된다. 선형 행렬 연산을 통해 배치 학습을 진행시켜 학습에 필요한 연산들을 효과적이고 빠르게 실행할 수 있다. 배치란, 일괄적으로 처리되는 집단이나 무리를 의미한다. 밑의 사진을 통해 배치학습을 이해해보자. 왼쪽이 기존의 계산방식이고, 오른쪽이 배치 학습을 적용한 학습방법이다. 왼쪽에서는 N개의 데이터 쌍으로 구성된 학습데이터 쌍에 대해서 N번의 반복계산을 거친다. 그러나 배치학습을 적용하면 한번의 선형 행렬 연산을 통해 계산 속도를 증가시킬 수 있다.(행렬 연산을 GPU상에서 하게 되면 훨씬 빠..

[딥러닝 기초이론3-1] 복잡한 신경망에서의 그라디언트 (Backpropagation)

지금까지 AI가 동작하는 원리에 대해 알아보았다. 그 과정을 간단히 요약해보자면, 1. 랜덤한 초기값의 예측 모델 생성 2. 손실함수 설정 후 초기값 예측모델에 대한 손실함수 산출 3. 경사하강법을 통한 최적의 w와 b 획득 이와 같다. 지금까지는 입력이 한개인 인공신경망에 대해 알아보았고, 이 신경망에서의 입력에 대한 그라디언트(편미분)를 구하여 최적의 파라미터를 획득하였다. MSE 손실함수를 설정하고 2차함수 형태의 손실함수를 얻은 후 경사하강법을 진행하였다. 그러나 입력이 늘어나고, 신경망의 히든 레이어가 늘어날수록 모델의 파라미터는 증가하게 되어 수식적인 방법으로는 그라디언트를 구하기가 거의 불가능해진다. 복잡한 모델에서의 그라디언트는 어떻게 구할 수 있을까? 다음의 예시를 살펴보자. 입력이 x,..

[딥러닝 기초이론3] 인간의 신경계를 모티브로 한 인공신경망

위 사진은 '딥러닝' 이라고 검색하면 가장 쉽게 볼 수 있는 이미지 중 하나이다. 이전 포스팅에서 인공지능이 어떻게 구현되는지를 설명했었는데, 그 계산 과정을 이러한 인공신경망으로 도식화 할 수 있다. 이 과정을 이해해보도록 하는 시간을 가져보도록 하겠다. 위 사진을 통해 사람의 뉴런이 신호를 전달하는 법을 알아보자. 먼저 자극을 받아들이는 부분이 존재하고 그 자극을 전달하는 부분이 존재한다. 그 후 다시 해당 자극을 다른 뉴런의 수상돌기로 보낸다. 이를 우리가 실습했던 수면시간에 따라 피로도를 계산하는 메커니즘과 접목시켜 보면 다음과 같이 도식화된다. x는 수면시간이고 y를 피로도라고 생각하면 실습에서 했던 내용과 같다는 것을 알 수 있다. 외부에서 들어오는 x는 데이터이다. 해당 데이터에 우리가 학습..

[딥러닝 기초이론2-1] 선형회귀 손실함수와 적절한 학습률 설정

[딥러닝 기초이론2] 에서 손실함수와 학습률(learning rate)에 대해 배워보았다. 이번 포스팅에서는 1. 선형회귀에서 MSE 손실함수가 자주 쓰이는 이유 2. 적절한 학습률(learning rate) 설정이 필요한 이유 이 두가지에 대해서 다뤄보겠다. 1. 선형회귀에서 MSE 손실함수가 자주 쓰이는 이유 1) 에러의 최댓값을 기준으로 하는 경우 이 경우는 특이 데이터가 있을 시 그 데이터에 편향된 예측모델이 나온다는 문제점이 있다. 2) 오차 제곱의 합이 아닌 오차들의 합으로 손실함수를 설정하는 경우 이 같은 경우 에러들간의 부호가 달라지게 된다. 실제값에서 예측치를 뺀 값이 error가 되는데, 부호가 다르기 때문에 서로 상쇄되어 오차의 크기를 대변할 수 없게 된다. 그렇다면 절댓값들의 합은 ..

[딥러닝 기초이론2] AI(Artificial Intelligence)의 판단 기준과 학습법

전 포스팅에서 AI는 통계분석 프로그램이라는 이야기를 했다. 주어진 데이터를 통해 특성간의 상관관계를 파악하고, 그에 기반하여 새로운 데이터에 대한 판단이 가능하게끔 동작하는 것을 인공지능이라고 칭한다. 이제 인공지능이 새로운 데이터에 대한 판단기준, 즉 예측 모델을 어떻게 만들어내는지에 대한 이야기를 해보겠다. 기존의 데이터는 이러하다. 이 데이터들을 보고 직선 형태의 예측 모델을 직접 만들어보자. 아마도 이와 비슷한 직선을 그렸을 것이라고 예상된다. 그렇다면 우리는 왜 이런 직선을 그리게 된 것일까? 그 이유는 이 직선이 실제 데이터들을 잘 대변하기 때문이다. 즉, 실제 데이터들과의 오차가 가장 적기 때문이다. 기존의 데이터들과 해당 지점에서의 예측치간 발생하는 오차를 Training loss 라고 ..

[딥러닝 기초이론1] AI(Artificial Intelligence)란 무엇인가

우리는 실생활에서 알게 모르게 굉장히 많은 인공지능들과 맞닿아 있다. AI 반도체, AI 챗봇, AI 지우개, 생성형 AI 등등,,, 그렇다면 AI란 무엇일까? 나는 AI를 한 마디로 '통계 분석 프로그램' 이라고 표현하고 싶다. 인공지능이 무엇인지 얘기하다가 갑자기 통계 분석 프로그램? 의문이 들 수 있다. 의심은 잠시 접어두고 밑의 예시를 살펴보자. 강아지1 강아지2 강아지3 키 1m 2m 3m 무게 20kg 40kg ? 이 표는 강아지의 키에 따른 무게를 정리해놓은 표이다. 키가 3m인 강아지의 무게는 몇일까? 아마 대부분의 사람들이 60kg라는 결론을 냈을 것이라고 생각한다. 1에 20을 곱하면 20kg, 2에 20을 곱하면 40kg, 3에 20을 곱하면 60이기 때문이다. 이러한 우리의 자연스러..

인공지능 블로그 <딥러닝 훈련소> 시작합니다.

최근 자율주행, Chat GPT, 챗봇 등등 인공지능의 활용 범위가 점점 넓어짐에 따라 그에 대한 대중적 관심도 역시 증가하고 있다. 어떤종류의 AI 서비스던, 직접 체험해 본 사람들이라면 인공지능의 기술력이 꽤 높은 수준까지 올라왔다는 것을 느낄 수 있었을 것이다. 어쩔때는 사람보다 더 사람같이 동작하기도 한다. 어떻게 이런 일이 가능한 것일까? 이 블로그에서는 AI는 무엇인지, 또 어떻게 이러한 AI가 만들어지고 구현되는지 공학적 관점에서 살펴보도록 하겠다. 뿐만 아니라 관련하여 흥미로운 AI소식, 업계 동향, 인공지능의 활용방안과 같은 내용들과 그에 대한 나의 생각 또한 업로드 해보도록 하겠다.

카테고리 없음 2024.03.03