목록전체 글 (77)
속도 < 방향
건강 아침운동을 하면 퇴근하고 공부할 시간이 더 많아져서 좋다. 아직 잠들어있는 뇌를 근력운동과 유산소로 깨우는 것이 짜릿하다. 미라클 모닝은 잘 모르겠지만 내게 있어 아침운동은 미라클은 맞는 것 같다. 업무 정확히 어느 시점부터인지 모르겠지만, 언젠가부터 이해 안 되던 부분이 확실하게 이해가 되기 시작했다. 물론 여전히 부족한 부분이 많지만 암기가 아니라 이해를 하니 훨씬 내 것으로 만들기 쉬워졌다. 분야의 특성 상 하나를 배우면 수채화 물감이 번지듯 주변으로 확장되어가는 속도가 빠른 듯하다. 덕분에 OCR 구현도 해보고 pose estimation, word embedding, 거리추정 알고리즘, GAN, auto encoder, swin transformer, 이상치 탐지, 시계열 데이터 등 다양한..
edwith CS50강의를 보며 정리했습니다. ● 가상 현실과 증강 현실 우리는 일상에서 쉽게 가상 현실(VR, Virtual Reality) 과 증강 현실(AR, Augmented Reality)을 접한다. VR은 가상의 환경이나 상황을 컴퓨터로 만들어서 사람들이 실제로 그 상황에 들어와있는 것 처럼 느끼고 상호 작용할 수 있도록 만들어 주는 인터페이스를 뜻한다. AR은 가상현실과 기본적으로 비슷한데, 사용자에게 기존의 주변환경과 분리된 전혀 다른 환경을 경험하게 하지 않고 현재의 환경 위에 영상, 게임 등의 효과를 입히는 기술이다. 간단한 형태로는 휴대폰을 통해 유튜브나 페이스북으로 3차원 공간을 둘러볼 수 있는데, 네모난 액정 안에 3차원 공간이 다 담긴다. 혹은 구글 카드보드나 삼성 기어, 오큘러..
edwith CS50강의를 보며 정리했습니다. ● 이미지 파일 추리물을 좋아하는 사람이라면, 혹은 소싯적 TV 프로그램을 많이 봤다면 누구나 아는 프로그램이 있다. 바로 CSI 프로그램이다. 해당 프로그램에서 자주 나오는 화면이 영상을 멈춰서 확대하는 장면이다. 위의 이미지를 확대하면,,? 현실은 다르다. 한정된 비트들로 이루어진 이미지를 확대하면 이렇게 이미지가 번지거나 깨지는 현상을 볼 수 있다. 이런 현상이 발생하는 이유는 무엇일까? 우리가 컴퓨터와 해온 상호작용들은 대체로 모니터, 키보드, 마우스 등으로 이루어졌다. (물론 사람마다 다르겠지만) 하드디스크나 파일과 상호작용을 하는 빈도는 비교적 적다. '파일'은 무엇일까? 위의 사진은 'JPEG'의 확장명을 가지고 있는데, 이러한 파일들은 특정 비..
edwith CS50강의를 보며 정리했습니다. ● 16진수 사진 파일의 확장명인 jpg(jpeg)를 아는가? 모든 JPEG 파일의 첫 3byte는 이렇게 시작한다. 하지만 이렇게 10진수, 2진수만 사용하지는 않고 대체로 16진수 (hexadecimal) 를 사용한다. 0~9 다음부터 10~15의 숫자는 a,b,c,...f 등 알파벳으로 표현한다. 위의 숫자들을 2진수, 16진수로 나타내면 8bit 였던 걸 2bit로 구현할 수 있다. 하지만 ff, d8, ff 등으로 표현하지는 않고 16진수를 사용할 때는 관례적으로 빈 공간에 0x라는 것을 앞에 넣어서 위와 같은 표현으로 나타낸다. 16진수가 유용한 이유는 4bit 패턴과 완벽한 대응을 하기 때문이다. (2의 4제곱). 이를 활용하여 8bit나 1by..
edwith CS50강의를 보며 정리했습니다. ● ASCII 코드 컴퓨터가 숫자가 아니라 문자나 다른 것들을 나타내기 위해 하는 것이 있을까? 컴퓨터 업계에서는 숫자를 알파벳 문자에 대응시키는 표준 방법을 채택하였다. ASCII 는 아스키라고 읽으며 글자를 10진수로 대응하는 것이다. 우리가 '문자'를 표현하고 싶지만 컴퓨터는 '숫자'로만 언어를 처리하기 때문에 숫자를 글자로 변환하려면 비트 패턴으로 변환이 필요하다. 그럴 때 사용하는 것이 ASCII 코드이다. 알파벳 'A'는 65로 시작하는데, 2의 6제곱인 64까지 표기를 하고 그 이후에 시작하는 순서이다. 예를 들어 HI 라고 쓰고 싶다면, ASCII 코드로 숫자 72와 73을 나타내는 비트 패턴으로 전기신호를 보내 저장한다. 비단 문자뿐만 아니라..
시계열 데이터는 다양한 패턴으로 나타날 수 있다. 시계열 패턴은 추세(trend), 계절성(seasonality), 주기(cycle) 이렇게 세 가지 패턴으로 나뉘는데 보통 추세와 주기를 결합하여 추세-주기 성분으로 다룬다. 일반적으로 추세-주기 성분, 계절성 성분, 나머지 성분의 세 가지로 구성된다고 여겨진다. 6.1 시계열 성분 $y_t$ 는 데이터, $S_t$ 는 계절성성분, $T_t$ 는 추세-주기 성분, $R_t$ 는 나머지 성분이다. 덧셈 분해(additive decomposition) 에 대한 수식은 아래와 같다. $y_t = S_t+ T_t + R_t,$ 곱셈 분해(multiplicative decomposition) 에 대한 수식은 아래와 같다. $y_t = S_t\times T_t \t..
1. 직업을 취하다. 언제부터 취업이라는 말이 쓰였는지는 모르지만 직업을 취하게 되었다. 무척이나 기쁠 줄 알았는데 생각보다 어벙벙했다. 그렇게 어벙벙하게 들어간 회사는 정말 좋았다. 기대치가 없던 것도 아닌데 기대 이상이고 공부를 맘껏 할 수 있는 자유가 있어서 기쁘다. 배울 자유를 회사에서 누리다니! 2. 달라진 사람들 돌이켜보면 항상 관심사에 따라 만나는 사람들이 달라졌던 것 같다. 음악에 심취했을 때는 음악인들을 많이 만났고 요리에 미쳤을 때는 조리사들을 많이 만났다. 개발을 공부한 이후로 만나는 사람들은 공통점이 개발로 이어져있다. 어찌보면 당연해보이면서도 생각해보면 그리 쉬운 것이 아닌데 나는 내 삶의 터전과 방향을 잘 컨트롤 하고 있구나 하는 생각이 문득 든다. 3. 나를 기록하다. 지난달 ..
07. 딥러닝 07-1 인공 신경망 시작하기 전에 럭키백의 성공 이후 타깃 고객의 연령대를 대상으로 패션 럭키백을 진행해보려 한다! 는 사실 패션 mnist 데이터를 사용하기 위한 밑밥..이지만 박해선님의 스토리 라인에 감탄! 시작하기에 앞서, 머신러닝/딥러닝을 입문할 때 사용하는 데이터셋이 있다. 머신러닝에서 붓꽃 데이터셋이 유명하듯, 딥러닝에서는 MNIST dataset이 유명하다. 이 데이터에는 손으로 적은 숫자로 이루어져 있는데, 패션 mnist는 숫자가 아닌 패션 아이템이 들어가있는 데이터셋이다. from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mni..
edwith CS50강의를 보며 정리했습니다. ● 2진수 입력과 출력은 무엇일까? 우리는 컴퓨터가 0과 1만 사용하고 0,1로만 이해한다는 것을 안다. 하지만 과연 0,1 두 숫자로 노트북이나 pc가 어떻게 작동하는지 설명할 수 있을까? 일상생활에서는 일반적으로 10진수(decimal)를 사용한다. '10'이라고 하는 이유는 0에서 9까지의 숫자 10개를 사용하기 때문이다. 2진수(binary)는 0과 1까지의 숫자 2개만을 사용한다. 컴퓨터는 0과 1만으로도 어떤 데이터든 충분히 표현할 수 있다. 숫자, 문자, 그래픽, 영상 등 모든 정보가 가능하다. 우리가 위의 그림을 본다면 본능적으로 1,2,3 숫자 3개로 인식할 것이다. 왜냐하면 우리가 어릴 때 숫자를 배울 때 10 단위로 생각하도록 배웠기 때문..
edwith CS50강의를 보며 정리했습니다. ● 비트 단위 정보의 최소 단위인 비트의 개념을 설명하려 한다. '손 들어', '불 꺼' 등과 같은 정보를 실생활에서는 컴퓨터 세계에서는 전기의 유무로 판단한다. True/False 등을 0,1 의 비트 개념으로 부호화할 수 있다. 하지만 하나의 비트로 쓰이는 것은 비효율적이기 때문에 최소 8개의 비트를 사용하여 하나의 문자를 표현한다. 즉, 1바이트(byte) 는 8비트(bit)로 이루어져 있다. 하지만 1바이트도 유용하지는 않다. 우리가 일상생활에서 대화를 하거나 메시지, 메일을 보낼 때에는 여러 바이트가 필요하기 때문에 보통은 바이트의 단위가 아닌 킬로바이트(kb)의 단위로 사용을 하기 시작한다. 1kb는 1,000byte로 이루어져 있다. 사실 정확히..