[6호]넘파이(Numpy)와 함께 땅따먹기를-00

Original article was published by Suyeon Park on Artificial Intelligence on Medium


[6호]넘파이(Numpy)와 함께 땅따먹기를-00

인문학적 시선으로 인공지능 파헤치기-06

과거의 문학도이자 현재의 공학도, 그리고 아티스트인 한 사람이 인공지능에 대해 알려주는 글을 연재한다. 전문용어의 단순한 나열이 아닌, 사람들의 공감을 불러일으키는 방향으로. 언제나 그랬듯, 지능의 발달은 공감에서 출발하기 때문.

명사와 동사

인생에서 가장 중요하게 생각하는 단어를 고르라면 대부분 돈, 명예, 권력, 학벌과 같은 인공적인 단어들을 고를 것이다. 감성이 풍부하거나 면접 상황에 놓인 사람이라면 사랑, 관찰, 도전 등을 주요 후보에 올린다.

이들에게는 공통점이 있다. 대부분이 명사라는 것이다.

명사(Noun)는 언어 발달에 크게 이바지했다. 언어가 없던 시절에도 인간은 특정 사물을 가리키며 사물에 걸맞는 소리를 냈으리라. 하지만 명사에 견줄 만한 주요 품사가 있었으니, 바로 동사다.

동사는 참으로 등한시하기 쉽다. 행동의 시작과 종료에만 집중하다 보니 그들 사이의 과정을 잊어버린다. 이러한 특성이 사람들을 곤란한 상황에 몰아넣는 주범이 아닐까? 누구나 시험장에 가면 머릿속이 백지가 되는 기분을 느낄 수 있다. 우리가 ‘다 외웠다’는 결과에 집착하며 체크리스트를 던져 버리는 순간, 암기하는 과정에서 쏟아부었던 노력이 주는 느낌은 모든 신경세포, 운동세포, 감각세포에서 빠져나간다. 이는 필자가 체크박스를 달갑지 않게 보는 이유이기도 하다.

‘뒤집다’ 바라보기

독자들은 궁금할 것이다. ‘글쓴이가 좋아하는 단어는 무엇일까?’ 많은 단어들이 있지만 오늘의 글을 위해 필자는 ‘뒤집다’를 선택했다.

아기의 뒤집기부터 기업의 판 뒤집기까지 ‘뒤집다’의 영향력은 크다. 그릇을 뒤엎으며 불만을 표하거나(권장한다는 의미는 아니다) 상자를 뒤집어 바깥을 내다보기 위한 발판을 만들기도 한다. 한 아이디어가 시장 경제에서 트렌드가 될 가능성이 보이는 상태와 앞이 꽉 막힌 상태, 사건이 발생한 상태와 발생하지 않은 상태. 뒤집은 상태와 뒤집지 않은 상태. 가만히 바라보고 있노라면 컴퓨터의 입장에서도 두 상태를 나름대로 표현할 수 있다.

01이다.

넘파이(Numpy)의 판 뒤집기

넘파이(Numpy)는 숫자를 가공하는 데 있어 거대한 밭을 가는 농부와 같다. (Artwork by Suyeon Park || Instagram: @rollingbb8)

이 글을 읽는 독자 여러분은 인공지능을 공부하겠다는 목표 아래 한데 모인 사람들이다. 그 곁에서 절대 떠나지 않을 도구가 바로 넘파이(Numpy, Numerical Python의 약자)다.

왜 넘파이가 필요할까? 그에 앞서 앞에서 말한 ‘뒤집다’를 생각할 필요가 있다.

현실 데이터는 형태가 매우 다양하다. 사진, 음악, 영상, 이 글(텍스트), 측정값 등. 형식도, 크기도, 출처도 다양한 이 데이터들을 프로그램에서 어떻게 분석, 가공, 저장할 수 있을까?

컴퓨터는 뒤집은 상태와 뒤집지 않은 상태, 즉 0과 1로 모든 것을 받아들인다. 사진은 ‘각 화소(픽셀, pixel, 이미지/영상을 이루는 가장 작은 단위)별 밝기가 다르게 표기된 2차원 행렬‘로 생각할 수 있다. 음악은 ‘시간 대비 강도(intensity)를 나타내는 1차원 배열’이다. 행렬과 배열을 효과적으로 가공하는 데 넘파이만한 것이 없다.

어떤 형태의 데이터든 그 데이터를 분석할 수 있도록 만드는 첫 번째 단계가 바로 ‘데이터를 숫자 배열로 변환하는 것’이다. 따라서 숫자 배열을 효과적으로 저장하고 가공하는 것은 데이터 과학의 핵심이자 기초다. 이에 넘파이는 복잡한 데이터들을 저장하고 처리하는 데 필요한 좋은 인터페이스를 제공한다. 넘파이는 데이터 과학의 판도를 ‘뒤집었다’.

데이터 사이언스를 하고 싶든, 머신러닝 모델을 훈련시키고 싶든, 인공지능을 배우고 싶든, 넘파이를 사용하는 방법은 반드시 알아야 한다.

넘파이 만나기

자, 이제 코랩 노트북을 꺼낼 때가 되었다. 필자가 제공하는 링크를 누르면 앞으로의 실습을 따라할 수 있으니 어디서 꺼낼지 몰라 우왕좌왕하지 않아도 된다.

넘파이와 만나는 방법, 즉 넘파이를 사용하는 방법은 import 키워드를 사용하는 것이다. 다음과 같다.

두 가지 방법이 있다. 첫 번째는 넘파이의 이름을 그대로 불러주는 것이다. 하지만 데이터 사이언티스트 중 아무도 이렇게 하지 않는다. 간결함 또한 생명이기 때문이다. 따라서 넘파이는 코드상에서 자신의 애칭인 ‘np’로 더 자주 불린다. 실습해 보기 바란다. 이제 넘파이와 함께 배열, 행렬, 데이터를 가지고 이것저것 재밌는 것을 할 준비가 다 되었다.

다음 주부터는 ‘넘파이 배열’을 설명할 예정이며 본격적인 넘파이 연산 코드들이 나온다. 연산 코드는 마치 땅따먹기를 한다고 생각하면 쉽다. 특정한 함수에 집어넣을 때마다 숫자가 이리 바뀌고 저리 바뀌기 때문이다.

두려워하지 마시길. 늑대와 함께 춤도 출 수 있는데, 넘파이와 함께 땅따먹기를 하는 것은 왜 하지 못하겠는가?

글을 맺으며.

데이터 사이언스는 어렵다. 그렇다. 솔직히 말해서 어렵다. 수학과 담을 쌓은 사람이 들으면 무슨 헛소리를 늘어놓는 것인지 알 길이 없을 것이다.

그래서 고민을 했다. 고민 끝에 인문학적 시선을 도입했다. 하지만 그에 따라 진도가 천천히 나가는 듯한 느낌을 받았다.

그동안의 우리가 너무 빨랐던 것은 아닐까? 이 코너에서만이라도 독자들이 ‘쉬면서 배울’ 수 있도록 묵묵히 집필하고자 한다.

오늘도 글을 쓰며 컴퓨터와 대화하고 세상과 대화한다.