전체 글

전체 글

    [Kaggle] Recruit Restaurant Visitor Forecasting Competition

    [Kaggle] Recruit Restaurant Visitor Forecasting Competition

    Competition Overview 개요 Kaggle Recruit Restaurant Visitor Forecasting Competition Sponsored by Recruit Holings. Held in Jan. 2018. Challenged to use reservation and visitation data to predict the total number of visiotrs to a restaurant for future dates. Will help restaurants be much more efficient and allow them to focus on creating an enjoyable dining experience for their customers. - Submissi..

    지속가능한 데이터 센터(Sustainable Data Center)

    지속가능한 데이터 센터(Sustainable Data Center)

    최근 글로벌 기업들을 중심으로 데이터 센터의 지속가능성, ESG 경영이 주목 받고 있다. 기업에서 데이터 센터는 IT 운영, 나아가 이제는 비즈니스 운영의 핵심이라고 할 수 있다. 특히 우리나라는 코로나 19 발생 이후 다른 어떤 곳보다도 빠르게 디지털 전환(Digital Transformation)을 수용하는 가운데 5G, 심지어 6G 기술까지도 선도하면서 앞으로 그 중요성과 수요가 더 커질 전망이다. APAC 국가들 중에서도 가장 높은 수준으로, 빠르면 앞으로 3년 이내에 서버 이용이 20% 이상 증가할 수 있고, 2026년이 되면 데이터 센터를 운영하기 위해서 407,000`m^2`의 면적이 필요할 것이라고 한다. 이러한 데이터 센터의 에너지 소비 비중은 기본적으로 서버 운영 등 장비에 35%, 열..

    하이퍼파라미터(Hyperparmeter)와 최적화(Optimization)

    하이퍼파라미터(Hyperparmeter)와 최적화(Optimization)

    하이퍼파라미터(Hyperparameter)란, 모델이 학습하면서 최적의 값을 자동으로 찾는 것이 아니라 사람이 직접 지정해 주어야 하는 변수를 말한다. 반면 파라미터(Parameter)는 가중치나 편향처럼 모델이 학습을 통해 최적의 값을 찾는 변수이다. 아래 그림은 하이퍼파라미터와 파라미터를 직관적으로 이해할 수 있도록 도와준다. 대표적인 하이퍼파라미터의 종류에는 다음과 같은 것들이 있다. 학습률(Learning Rate) 비용 함수(Cost Function) 훈련 반복 횟수(Epochs) 은닉층의 뉴런 개수(Hidden Units) 규제 강도(Regularization Strength) 가중치 초기값(Weight Initialization) 미니 배치 크기(Mini-batch Size) 그렇다면 최적의..

    과적합(Overfitting)과 규제(Regularization)

    과적합(Overfitting)과 규제(Regularization)

    과적합(Overfitting)이란 모델이 train 데이터에 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 말한다. 이게 과연 무슨 말일까? 데이터를 잘 학습할수록 좋은 것 아닌가? 예를 들어 아래와 같은 회귀 문제가 있을 때, 우리가 원하는 모델은 두 번째에 가깝다. 첫 번째 모델은 과소적합(Underfitting)의 경우로, 주어진 데이터를 아직 제대로 반영하지 못하고 있고, 세 번째 모델은 주어진 데이터가 모든 경우에 나타나는 일반적인 경향이라고 오해한 경우이다. 즉 과적합(Overfitting)되어 새로운 데이터에 대해서는 적용할 수 없는, 일반화하기 어려운 경우이다. 세 그래프에 빨간 점(data)을 하나씩 더 찍어 보았다. 점선(모델이 예측한 결과)과의 거리가 가장 가까운..

    앙상블 학습(Ensemble Learning)이란?

    앙상블 학습(Ensemble Learning)이란?

    이번 글은 앙상블 학습에 대한 개념과 주요 전략에 대해 쉽게 이해할 수 있도록 정리해 보았다. 앙상블 ensemble, 하면 무엇이 떠오르는가? 다양한 악기가 모여 멋진 연주를 함께 만들어 가는 모습이 상상되지 않는가? 'ensemble'이라는 단어를 실제로 사전에서 찾아보면 다음과 같다. A group of things or people acting or taken together as a whole, especially a group of musicians who regularly play together. 우리가 이번에 살펴 볼 앙상블이라는 인공지능의 학습 방법도 위 정의와 크게 다르지 않다. 사람을 예로 든다면, 한 명의 IQ 130인 사람이 혼자 문제를 푸는 것보다, 5명의 IQ 100인 사람이..

    경사하강법(Gradient Descent)이란?

    경사하강법(Gradient Descent)이란?

    지난 글에서 수치 미분이 무엇인지 알아보았다. 그런데 이걸 딥러닝에서 어떻게 쓸 수 있을까? 이번 글에서는 딥러닝에서 가장 중요하게 미분이 쓰이는 부분 중 하나인 경사 하강법(Gradient Descent)에 대해 정리해 보았다. 잠깐! 편미분 먼저! 사실 경사하강법이 무엇인지 이해하기 위해 알아야 할 또 하나의 미분 개념이 있다. 바로 편미분(Partial Derivative)이다. 아래 식에는 변수가 2개나 있다. 과연 미분은 이 중 어떤 것을 기준으로 해야 할까? 정답은 '둘 다 가능하다'이다. 이렇게 변수가 여럿인 함수를 각 변수에 대해 미분하는 것을 편미분이라고 한다. $$f(x_0, x_1) = x_0^2 + x_1^2$$ `f`를 `x_0`에 대해 미분하는 것을 `\frac{\partial ..

    수치 미분(Numerical differentiation)이란?

    수치 미분(Numerical differentiation)이란?

    수치 미분이란 무엇일까? 우선 미분의 개념부터 간략하게 짚고 넘어가자. 미분의 가장 쉬운 예로는 속도를 들 수 있다. 어떤 사람이 10분 동안 2km를 달렸다고 하자. 이때 이 사람이 달린 10분 동안의 평균 속도는 `2km / 10분 = 0.2 km/분` 이다. 만약 우리가 그중 특정 1분 동안에 달린 거리를 알 수 있다면, 그건 1분 동안의 평균 속도라고 할 수 있다. 마찬가지로 어떤 1초, 또 0.1초, 0.01초에 대한 평균 속도도 구할 수 있다. 만약 여기서 더 짧은 시간 동안의 속도를 구할 수 있다면, 그건 '평균'보다는 '순간 속도'라는 표현이 더 적절할 것이다. 이처럼 한 순간의 변화량을 '미분'이라고 한다. 어쩌면 우리는 아래와 같이 미분을 표현한 수식이 익숙할 것이다. 즉 `h`라는 값..

    퍼셉트론(perceptron)이란?

    퍼셉트론(perceptron)이란?

    딥러닝에 대해 공부를 시작하면서 가장 처음 접한 것이 바로 퍼셉트론perceptron 이었다. 이 퍼셉트론이 근간이 되어 인공 신경망과 딥러닝이 시작되었기 때문이다. 퍼셉트론은 그 자체로 '인공 뉴런'이라고 할 수 있다. 인간의 뉴런이 자극을 받고 이를 전달하는 원리를 인공적으로 구현한 것이다. 그래서 궁금해졌다. 과연 어떤 점에서 뉴런과 닮았다고 하는 것일까? 나처럼 궁금한 사람들을 위해 정리해 보았다. 무엇이, 무엇이 똑같을까? 퍼셉트론은 뉴런을 그대로 본 따서 만들었기 때문에, 구조와 기능 면에서 거의 같다. 아래 그림을 보면서 설명하면 더욱 명확하게 와닿을 것이다. 1. 뉴런 수상돌기 Dendrite ↔ 퍼셉트론 Input `x` 뉴런은 여러 개의 수상돌기들과 한 개의 축삭돌기로 구성되어 있다. ..

    판다스Pandas 가 뭔가요? (+ 와인 리뷰 데이터 탐색 맛보기)

    판다스Pandas 가 뭔가요? (+ 와인 리뷰 데이터 탐색 맛보기)

    데이터 분석 또는 인공지능에 대해 처음 공부를 시작하면 대뜸 맨 앞에 등장하는 것 중 하나가 판다스Pandas이다. 몇 줄 설명을 읽어보긴 하지만, 그래서 뭐 어쨌다는 건지 도무지 와닿지 않는다. 그런 상태에서 무작정 코드를 따라 치기 시작하니 머리가 멍해질 수밖에 없다. 이번 글에서는 pandas란 무엇이고, 왜 필요한지, 어떻게 쓸 수 있는지 머릿속 의문점을 하나씩 풀어가며 이해해보자! 판다스Pandas 란 데이터를 분석하고 각종 처리를 할 때 이용하는 파이썬 언어 기반의 라이브러리이다. pandas로 데이터를 표현하는 두 가지 핵심 방법(정확히 말하면 객체)이 있는데, 바로 데이터프레임DataFrame 과 시리즈Series 이다. 각각이 어떻게 생겼는지 예제 코드로 살펴보자. 데이터프레임 DataF..

    [파이썬 코딩의 기술] 03/ 협업의 확장

    [파이썬 코딩의 기술] 03/ 협업의 확장

    BETTER WAY 85/ 패키지를 사용해 모듈을 체계화하고 안정적인 API를 제공하라 프로그램 코드베이스 크기가 늘어나면 코드 구조를 체계화하게 된다. 특히 모듈이 너무 많을 경우에는 다른 계층을 추가로 도입하게 되는데, 이를 위해 파이썬은 패키지package 를 제공한다. 이 패키지는 다른 모듈들을 포함하는 모듈이라고 할 수 있다. 패키지를 정의하기 위해서는 __init__.py 라는 이름의 빈 파일을 디렉터리에 추가해야 한다. (python3.3부터는 이 파일이 없어도 패키지로 인식되지만, 버전 호환을 위해 추가하는 것이 좋다.) 이미 __init__.py가 있는 디렉터리가 있다면, 다른 파이썬 파일은 이를 상대적인 경로를 통해 import하면 된다. 패키지는 주로 두 가지 기능을 한다. 1. 이름..