인공지능

    [python] 해밍 거리 (Hamming Distance) - 동적 계획법

    해밍 거리 (Hamming Distance) 해밍 거리는 문자열 사이의 거리를 정의하는 가장 심플한 방법입니다. 동적 프로그래밍에서 Edit distance를 배울 때 같이 익히는 거리 계산법 중 하나인데요. 해밍거리는 문자열에 포함된 문자를 앞에서부터 하나씩 비교하여 몇 개나 다른가를 출력하는 거리 함수 입니다. 예제를 살펴보겠습니다 123456789 vs 023456789 => 1개의 문자열이 다름 (0과 1) ILOVEYOU vs YLOVEIOU => 2개의 문자열이 다름 (I & Y의 위치가 다름) 보시다시피 간단한 거리 계산 방법입니다. 이를 파이썬의 scipy 패키지를 이용하여 구현해보겠습니다. # 해밍 거리 활용 예제 from scipy.spatial import distance sample..

    [python] 기본적인 탐색 알고리즘 2 - BFS

    기본적인 탐색 알고리즘 관련 내용은 이전 포스팅 참고 [python] 기본적인 탐색 알고리즘 1 - DFS 탐색 알고리즘에 대해 알아봅시다. 인공지능을 공부하면, 상당수의 개념이 상태공간에서 비롯됨을 알 수 있습니다. 이러한 상태공간을 탐색하는데에는 여러 방법이 있는데요. 그중에서도 아무 benban.tistory.com 이번 포스팅에선 너비우선탐색 Breath-First Search (BFS)에 대해 알아보는 시간을 갖겠습니다. BFS 원리 설명 위 그래프와 리스트는 BFS의 전형적인 문제해결 방법을 나타냅니다. DFS와 다른점이 있다면, 어떠한 노드를 탐색했을 때, 해당 노드의 자식 노드를 가장 우선적으로 탐색하는 방법이 아닌 오픈리스트 맨 마지막에 추가하여 가장 나중에 탐색하여 넓게 넓게 확인하며 ..

    [python] 기본적인 탐색 알고리즘 1 - DFS

    탐색 알고리즘에 대해 알아봅시다. 인공지능을 공부하면, 상당수의 개념이 상태공간에서 비롯됨을 알 수 있습니다. 이러한 상태공간을 탐색하는데에는 여러 방법이 있는데요. 그중에서도 아무런 기초 지식이 없을때 활용할 수 있는 탐색 방법중 하나인 망라적 탐색(Exhaustive Search)에 대해서 알아보도록 하겠습니다. 망라적 탐색을 수행하려면 몇 가지 기본적인 Rule을 숙지해야합니다. 이미 확인한 곳을 다시 확인해서는 안됨 (closed list로 관리) 아직 확인하지 않은 곳을 알고 있어야함 (open list로 관리) 효율적인 순서로 탐색해야함 -> 깊이우선탐색(DFS), 너비우선탐색(BFS) 활용 그 중에서도 이번에는 깊이 우선 탐색인 Depth-First Search (DFS)에 대해 알아보고, ..

    [인공지능] 프레임 문제 (Frame Issue)

    바로 예를 들어 인공지능이 갖고 있는 프레임 문제에 대해 설명드려보겠습니다. 인공지능에게 '햄버거집에서 햄버거를 사와라' 라고 요구했다고 생각해봅시다. 실제 이 일을 수행하는데, 햄버거를 사러 다녀오는 과정에서 무수하게 다양한 사건이 일어날 가능성이 있습니다. 대부분 목적과는 관계가 없는 문제겠죠. 하지만 인공지능은 일어날 수 있는 사건 주에서, 햄버거를 사는 일에 관계된 것만을 추출해내고, 그 외의 일은 당분간은 염두에 두면 안되겠죠. 만약 모든 사건을 고려한다면, 무한한 시간이 걸릴 것입니다. 이처럼 어떤 테두리(프레임)를 만들고, 그 테두리 안에서만 사고할 필요가 있는데 이것을 바로 프레임 문제라고 합니다. 미리 프레임을 여러 개 정해 두어, 상황에 따라 적절한 프레임을 선택해 사용하면 해결할 수 ..

    [인공지능] Strong AI vs Weak AI

    2010년도 후반에 이르러 인공지능의 쓰임새는 나날이 증가하고 있습니다. 컴퓨팅 파워, 센서, 사물의 데이터화 등을 통해 무수히 데이터가 쌓이기 시작하고, 이를 저장하고, 처리하고, 활용할 수 있는 솔루션이 인공지능 사용을 계속해서 촉진하고 있기 때문이죠. 인공지능은 흥망성쇠를 거듭하며 인공지능은 Strong AI와 Weak AI로 나뉘었습니다. Strong AI Strong AI는 구성론적인 접근으로 굉장히 연역적인 부분이 있습니다. 인간의 지능을 재현하려는 과정을 통해 인간을 이해하려고 하는 완벽주의적 AI입니다. 따라서 인지발달 로보틱스, 뇌신경 과학 등에서 추구하는 인공지능이기도 하죠. 하지만 인간의 뇌를, 뉴런을 표현하기에는 우리의 기술은 아직도 한없이 부족합니다. 수십억개에 달하는 뉴런과 그와..