AI

[인공지능]알고리즘 이해하기

Mi-Flat 2022. 4. 10. 11:14
반응형

안녕하세요 미니멀헬퍼 입니다.

 

오늘은 알고리즘에 대해 이해해보는 시간을 가져보겠습니다.

 

알고리즘(Algorithm)하면 어떤 것이 떠오르시나요?

 

유튜브 알고리즘이란 말, 한 번쯤 들어보셨을텐데요.

 

여기서 알고리즘이란 의미를 해석해보면

 

A란 영상을 보면 A 영상의 내용이나 키워드가 비슷한 B 영상을 추천해주는 과정을 의미합니다.

 

알고리즘이 나를 이 영상으로 이끌었다는 말처럼 우리가 하나씩 선택하지 않더라도 

 

자연스럽고 정확하게 예측하여 추천해주는 인공지능 알고리즘입니다.

 

하지만 알고리즘을 배우려 하면 복잡한 수식과 수학 및 컴퓨터 공학 용어가 많아

 

처음에 쉽게 접하기 어려운 것이 현실입니다.

 

이론적 정의를 이해하는 것도 중요하지만 이러한 알고리즘이 어떤 배경에서 형성되고

 

그리고 어디에 활용되는 지 이해하고 아이디어를 내는 것은 전문가가 아니더라도 충분히

 

할 수 있습니다. 

 

결국 알고리즘을 만든다는 것은 컴퓨터를 활용하여 입력값에 따른 출력값을 내보는 과정입니다.

 

컴퓨터 이해하고 원하는 결과를 보다 빠르고 정확하게 내보내기 위해서는 컴퓨팅 사고에 기반하여

 

문제를 이해하고 해결할 수 있는 역량이 중요하죠.

 

여기서 중요한 것은 바로 문제의 성격입니다.

 

1 + 1 = 2 라는 문제를 컴퓨터에 입력해봤자 나올 답은 뻔합니다.

 

이렇게 정답이 하나로 정해져 있는 폐쇄적 질문이 아닌

 

다양한 여러 변수를 고려하여 문제를 해결할 경우 어떤 방식이 가장 효율적인가를 판단해주는 것이

 

인공지능 컴퓨터가 도와줄 수 있는 부분이죠.

 

여러분 주변에서 볼 수 있는 문제를 찾아보는 것이 우선 중요합니다.

 

그리고 여기서 중요한 것은 정해진 정답이 없다는 것입니다. 이렇게 했을 경우 발생할 수 있는 문제,

 

저렇게 했을 경우 발생할 수 있는 문제를 모두 고려하여 최적의 답을 구해야 하는 것이죠.

 

운동장 공간이 부족한 경우 무조건 공간을 넓히는 것이 답이 될까요?

 

학년이 시간을 나누어 쓰거나, 요일을 나누거나, 다른 공간을 활용하거나 여러가지의 변수들이

 

있는 문제가 될 수 있습니다. 

그리고 이러한 문제를 해결할 때 필요한 것이 바로 알고리즘입니다.

 

문제 풀이를 위한 처리 과정의 순서.. 앞서 설명드린 문제를 풀기 위해 

 

어떤 처리 과정의 순서로 해결할 것인가를 도식화한 것입니다.

 

첫 번째 알고리즘의 형태에는 자연어 알고리즘이 있습니다. 자연어 말그대로 일상 언어로 순서대로 문제를 해결하는

 

과정입니다. 우리 주변에서 흔히 볼 수 있는 손씻기 과정이나, 가전 제품 메뉴얼 등 일상적으로 쓰이지만,

 

단점은 표현이 모호하게 표현될 수 있다는 점입니다.

 

그래서 다른 방식으로 표현한 것이 순서도 표현 알고리즘입니다.

 

순서도 표현 방식을 활용하여 약속된 기호를 통해 누가 봐도 전체적인 문제 해결 방식을 이해할 수 있습니다.

 

그러나 도형의 의미나 구조를 파악하는 데 다소 어려움이 있을 수 있다는 단점이 있습니다.

 

간단하게 알고리즘의 종류 및 장단점을 살펴보았는데요.

 

우리 주변에서 볼 수 있는 일상 활동을 통해 알고리즘을 이해해보도록 하겠습니다.

 

우리 한 번 이 닦는 과정을 3단계, 5단계, 7단계로 구분하여 생각해볼까요?

 

보통 우리는 이 닦는 문제를 단계별로 고민하지 않습니다. 왜냐하면 자연스러운 행동이기 때문이죠.

 

뇌는 단계별로 생각하고 움직일 지 몰라도 그것을 인식하기는 어렵습니다.

 

의도적으로 이 닦는 과정을 세분화해보면 꽤나 복잡하다는 것을 알 수 있습니다.

 

단계를 세분화 한다는 것은 순서의 중요성을 알기 위해서 입니다.

 

치약 뚜껑을 열고 치약을 눌러 칫솔에 뭍혀야 하는데 치약 뚜껑을 여는 순서가 뒤에 있다면 큰일나겠죠?

 

이를 닦는 과정에서  등교하는 과정으로 조금 더 확장한다면 아마 10단계로도 부족하지 않을까 싶네요

 

아침에 눈을 뜨고 세수하고, 이닦고, 아침먹고, 옷입고, 가방 메고, 양말 신고, 신발 신고, 문 열고 나가기

 

대충 생각해봐도 쉽지 않은 단계입니다. 그러나 우리는 등교나 출근을 단계별로 생각하면 살아가지는 않습니다.

 

익숙한 습관이 되어 자동화가 되어 있는 것이죠. 하지만 누군가에게 그 과정을 설명해야 한다면

 

표현하는 과정이 객관적이고 정확해야겠죠.

그래서 사용하는 것이 순서도 입니다.

 

다음과 기호를 활용하여 역할에 맞게끔 배치하여 순서도를 만들게 됩니다.

 

먼저 쉽게 숙제라는 문제를 해결하는 구조를 보면 

 

숙제에 대한 고민에서 해결까지 할 수 있는 방법이 나뉘어져 있습니다.

 

해결이라고 해서 무조건 숙제를 해야하는 것이 아니라는 것이죠.

 

하지만 우리는 숙제라는 고민이 있을 경우 어떻게 해야할 것인가를 고민하게 됩니다. 

 

그리고 추가로 선택 단계를 활용하여 조건을 만들 수 있습니다. 

 

코딩이란 머릿속의 이러한 알고리즘을 약속된 언어로 풀어내는 과정이라 볼 수 있는데,

 

프로그래밍을 잘하려면 논리력이 뛰어나야 합니다. 변수를 인지하고 변수에 따른 선택

 

사항이 어떤 것이 있는 지 정확히 파악해야 합니다.

이렇게 알고리즘은 여러 형태로 구성이 되지만 기본적으로 순차구조, 선택구조, 반복구조로 기본을 구성합니다.

 

만약 여러분이 고민 중인 문제가 있다면 그 문제를 해결할 수 있는 알고리즘을 한 번 작성해보는 것은 어떨까요?

 

검색 창에 draw.io 라고 검색하시면 순서도를 그릴 수 있도록 지원하는 도구를 사용하실 수 있습니다.

 

종이에 직접 적어보시는 것도 추천드리지만, 수정이나 기록이 조금 더 용이하도록 웹 상에서 작성해보시는 것도

 

알고리즘을 이해하고 여러분의 문제를 해결하는 데에도 도움이 되실 겁니다. 

 

이상 오늘은 알고리즘에 대해 알아보았습니다.

 

감사합니다.

반응형