목록분류 전체보기 (97)
Stack Building
프로그램을 여럿이 개발할 때에는 필요한 기능별로 나눠 작성한 후 합치게 된다. 기능별로 프로그램을 나누는 방법은 함수/객체/모듈로 나누는 것이다. 이 글에서 다루는 것은 함수이다. 1. 함수란 어떤 일을 수행하는 코드의 덩어리다. 코드를 논리적인 단위로 분리할 수 있으며, 인터페이스만 알면 타인의 코드도 사용할 수 있도록 하기 위해 캡슐화를 한다. 함수가 위에 작성되어 있어도 메인 프로그램부터 실행되니 초보자들은 유의해야 한다. 2. 파라미터parameter는 함수의 입력 값 인터페이스이고, 아규먼트argument는 실제 파라미터에 대입된 값이다. 파라미터는 설계할 때의 요소, 아규먼트는 실제 사용할 때의 요소를 말한다고 보면 된다. 파라미터와 리턴값 유무에 따라 함수의 형태가 달라진다. 필요에 따라 적..
1. 문법적 오류 초보자들이 흔히 하는 오류: 들여쓰기, 오탈자, 대소문자 구분 안 함 그 외: 에러 메시지 읽기 -> Google & Stack Overflow 2. 논리적 오류 뜻대로 실행이 안 되는 경우를 말함. 중간 중간 print를 찍으며 확인해 보면 좋음
면접 때 무슨 대답을 했는지도 잘 기억나지 않는데 좋은 운이 따라줘서 합격했다. 8번째 투빅스 컨퍼런스 발표에 참여하러 갔다. 모두 GAN이라는 기법을 사용해서 프로젝트를 해서 GAN이 무엇인지 궁금했다. 투팡맨 조에서 이해하기 쉽게 GAN에 대한 설명을 써 두었는데, GAN은 Generative Adversarial Network의 약자로, 그럴듯한 가짜를 만들어내는 생성자와 Generator와 Discriminator의 적대적 학습(Adversarial Learning), 인공 신경망으로 이루어져 있다고 한다. GAN에도 종류가 다양하게 있어서 발표를 들어보니 조마다 사용한 종류에 조금씩 차이가 있었다. 1조는 노래가사가 굉장히 그럴싸하게 만들어져서 재미있었고, 2조는 아이디어와 구현물이 뛰어난 수준..
마이크로소프트에서 여성 시니어 분들과 함께 이야기를 나누는 행사가 있어 참여했다. 아직 취업을 하지 않아서 여성으로서의 고민보다는 학생으로서의 고민 해결을 위해 찾았던 행사였는데, 정말 뜻깊었던 날이라 블로그에도 짤막하게 정리해본다. 이날 내가 느낀 것은 총 세 가지다. 첫 번째는 변화를 두려워하지 말 것, 두 번째는 인간관계에 있어 예의를 가질 것, 마지막은 곳곳에서 열심히 일하고 존경받는 여성들이 많다는 것이다. 나는 다소 편협하게 어떤 길을 택하면 평생 그 길에서 계속 발전해 나갈 것이라고 생각해서 어떤 길로 가야 할지 고민이 있었는데, 참여하신 시니어 분들 모두가 처음부터 지금 하는 일을 한 것은 아니라는 것이 인상적이었다. 그리고 커리어에 변곡점이 생길 때 용기를 가지고 정말 열심히 노력해서 그..
딕셔너리 dict가 있을 때, 딕셔너리를 정렬하는 방법은 다음과 같다. 1. key로 정렬 sorted(dict) 2. value로 정렬 sorted(dict.items(), key=lambda x:x[1]) items()가 딕셔너리의 key와 value를 tuple로 묶어 list로 만들기 때문에, 람다식에서는 value값으로 정렬하기 위해 x[1]을 보는 것으로 지정한다. 내림차순으로 정렬하고 싶을 경우 뒤에 reverse=True를 붙여 주면 된다. 3. value로 정렬한 후 key만 추출 2번의 코드를 실행한 후, [x[0] for x in arr]로 tuple의 0번째 값(key)만을 추출하면 된다.
1) Robot Dexterity (로봇의 자연스러운 동작) 현재 우리 주변의 로봇들이 움직임이나 작업시에 여전히 어색하고 부자연스러움을 벗어나지 못한 측면이 있으나, 하지만 꾸준한 시행 착오를 통해 이를 조금씩 극복 중. 2) New-Wave Nuclear Power (새로운 방식의 핵발전) 핵분열/핵융합 발전은 꾸준한 연구 개발 중. 이 발전 방식은 전통적 원자력 발전에 비해 훨씬 작은 규모와 비용으로 높은 생산성을 보임. 3) Predicting Preemies (조산 여부 예측) 임산부는 양수 검사 등의 프로세스를 통해야만 조산 위험을 알 수 있었음. 이를 개선하는 소량의 혈액 속에 떠다니는 소량의 유전자 정보로 조산 여부를 파악할 수 있는 테스트 기술 연구. 4) Gut Probe In A Pi..
https://about.google/intl/ko_kr/stories/lifebank/ Google 지도를 사용해 생명을 구하는 혈액을 전달하는 한 여성을 만나보세요. | Google 오토바이, 혈액은행, Google 지도를 사용해 아프리카 전역에서 백만 명에 달하는 생명을 구하고자 하는 여성이 있습니다. about.google 광고에 떠서 우연히 들어간 사이트인데 기술을 이용해서 삶을 개선한 사례, 문제를 해결한 사례, 전혀 새로운 접근들을 보여준다. 기술로 돈을 어떻게 많이 벌었는지에 대해서만 읽었을 때에는 읽는 것만으로 피곤해질 때가 많았는데 이런 걸 읽을 때면 꼭 돈 버는 용도가 아니라도 기술을 사용하는 방법은 무궁무진하다는 생각이 든다.
1. 인공지능의 주인이 되기 위해 반드시 알아야 할 것들 오혜연 KAIST 전산학부 교수 인공지능을 다루기 위해 꼭 필요한 주요 요소들을 쉽게 설명해둔 영상이다. 크게 목적함수, 학습, 일반화로 나눌 수 있다. 목적함수는 인공지능의 알고리즘 조정 과정에서 가중치를 설정하는 것으로 예를 들어 주셨고, 학습에는 학습 데이터를 잘 정제해서 입력하고 입력한 후 적절하게 구분해야 한다는 것을 알려 주셨다. 일반화는 새로운 것에 적용하는 것과 관련한 것인데 학습된 것과 무관한 것에도 적용될 수 있는 것을 의미한다. 2. 모두를 위한 인공지능 : Building AI for Everyone 제프 딘 구글 AI 총괄 시니어 펠로우 텐서플로우를 사용한 분석으로 고래 위치, 행동 및 이동 패턴을 알고 예측할 수 있었던 경..
학교에서 기회가 되어 방문하게 되었다. 작년에는 엔코아를 방문하고 이번에는 비투엔을 방문했는데 두 기업 다 한국 데이터 산업 협회에 소속된 기업이라고 한다. 협회에 대해 잘 몰라서 엄청 고르고 고른 몇 기업만 있는 줄 알고 스무 개 기업이 있는 것 아닌가 했었는데 무려 이백개 넘는 기업이 있다고 한다. 데이터 산업이 한국에서도 관심을 많이 받고 있다는 것을 느꼈다. 엔코아를 창업한 조광원 대표님께서 강연을 해 주셨는데 개인적인 일이라 블로그에 적지는 않겠지만 정말 엄청난 인생을 살아왔다고 느꼈다. 맨날 힘들다고 징징거렸는데 아무도 뭐라고 하지 않았지만 괜히 반성이 되는 기분이었다. 데이터를 잘 읽고 분석할 수 있는 사람이 중요하다고 말씀하시면서 학부 때 배운 이론은 와닿지는 않겠지만 현업을 해보면 아주 ..
1. 비지도학습 unsupervised learning 분류로 대표되는 정답이 함께 주어지는 학습을 지도학습이라고 했다. 비지도학습이란 트레이닝 데이터의 클래스 레이블이 주어지지 않은unknown 경우를 말한다. 측정치, 관측치 등등의 집합을 주고, 데이터 안의 클러스터의 존재를 증명하는 것을 목표로 한다. 우리는 데이터를 탐색하여 내재된 구조intrinsic structures를 찾고자 한다. 2. 클러스터링 2-1. 개념 (1) 클러스터링은 '군집cluster'이라고 불리는 데이터 안의 유사한 그룹들similarity groups을 찾아내는 기술이다. (2) 지도학습에서 사전에 이미 그룹화가 완료되어 데이터 인스턴스가 속한 그룹이 무엇인지 알려주는 클래스 값은 주어지지 않는다. 2-2. 응용 (1) ..