본문 바로가기
반응형

프로그래밍 ( Programming )86

[CMake] 윈도우 (Window)에 CMake 설치 CMake는 대표적인 C/C++ 프로젝트 빌드 도구입니다. 리눅스에서도 사용하기도 하며 윈도우에서 설치하는 방법은 다음과 같습니다. 설치를 위해서 우선 CMake 공식 홈페이지의 다운로드 페이지로 이동합니다. 주소: https://cmake.org/download/ Download | CMake Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production environment. It is b.. 2023. 1. 14.
애자일 & 스크럼 프로젝트 관리 애자일과 스크럼은 소프트웨어 업계에서 정말 많이 나오는 프로젝트 관리 방법들입니다. 먼저 애자일 스크럼 이전의 전통적 프로젝트 수행 방식에는 어떤 한계가 있었는지 살펴보겠습니다. 전통적인 수행 방식은 크게 규격화된 틀조차 없이 제조업에서 일하는 문화로 진행되었으며 이러한 수행 방식에는 다음과 같은 한계들이 존재하였습니다. 1. 프로젝트 초기에 구체적인 요구사항을 도출하기 어렵다. 분석, 설계, 구현, 테스트를 순차적으로 진행하는 폭포수 개발 방식은 분석단계에서 충분한 시간 투자를 진행하여 요구사항을 구체화시키지 않는다면 다음 단계로 못 나아가는 한계가 존재하였습니다. 이렇기에 일정 예측도 불가능하였습니다. 왜 도출이 어려운거냐? 라고 질문이 생긴다면 프로젝트 초반에는 concept과 같은 상세한 요구사항.. 2023. 1. 13.
[Python] Pickle 파일의 Dictionary에서 값 추출하는 방법 예를 들어서 우리가 다루는 피클 파일의 데이터를 출력하였을 때 해당 결과가 이렇게 나온다고 가정해봅시다. 파일은 위에 첨부해 두었기에 따라서 진행을 해보셔도 좋습니다. 간단하게 표현하면 아래와 같은 dictionary 안에 3개의 값이 들어있는 형태가 여러 개로 이어진 형태입니다. {'x1': array([4.9275775], dtype=float32), 'x2': array([-1.2006631], dtype=float32), 'rosenbrock': 64947.04304570523} 목표는 다음 형태에서 값만 추출하고 배열로 만드는 것입니다. 그러기 위해서는 우선 pickle 파일을 불러오는 코드와 딕셔너리 내부에 Value값들을 불러오는 코드가 필요합니다. import numpy as np impo.. 2021. 12. 13.
[ML] Bayesian Optimization이란 Introduction (도입) 보통 우리가 실험을 하거나 입력을 넣고 결과가 나오는 현상에 대해서 이해를 하기 위해서 입력과 결과 사이의 관계를 파악하고 그리고 관계를 이용하여 공식을 도출하고 싶어 합니다. 너무나도 잘 알려진 공식 F=ma 또한 그렇게 나온 것이니... 이때 입력과 결과 사이에 관계를 표현하는 요소를 보통 Black Box 또는 Black box function이라고 표현합니다. 그리고 Black Box의 특징은 다음과 같습니다. closed form으로 표현되지 않으며 Non-Linear 또는 Non-Convex 하여 수렴이 잘 되지 않는다. 또한 상당히 Complex, Noisy 하다. 마지막으로 데이터를 한번 얻기 위해 또는 evaluate를 하기 위해서 수많은 비용과 시간이 드.. 2021. 12. 10.
[ML] Logistic Regression 설명 및 직접 구현해보기 Logistic Regression (로지스틱 회귀) 로지스틱 회귀 이전에 존재하던 퍼셉트론은 간단하고 좋은 모델이지만 가장 큰 단점은 클래스가 선형적으로 구분되지 않을 때 수렴이 불가능하다는 점입니다. 에포크마다 적어도 하나의 샘플이 잘못 분류되기 때문에 가중치 업데이트가 끝도 없이 계속될수가 있습니다. 물론 학습률을 바꾸거나 에포크 횟수를 늘릴 수는 있지만 한계는 분명 명확하게 존재합니다. 로지스틱 회귀는 이름은 회귀 (Regression)이지만 실제로는 분류 (Classification) 모델입니다. 로지스틱 회귀는 구현이 매우 쉽고 선형적으로 구분되는 클래스에 뛰어난 성능을 내는 분류 모델입니다. 산업계에서 가장 널리 사용되는 분류 알고리즘 중 하나로써 어떤 범주에 속할 확률을 0~1 사이의 값으.. 2021. 12. 2.
[Python] Class 이해하기 Python에도 동일하게 Class가 존재합니다. Class & Instance 클래스를 이용하는 장점은 다음과 같습니다. 전역 변수를 없애고 모든 변수를 어떠한 범위 또는 스코프 안으로 소속시킬 수가 있음. 몇 번이고 재사용이 가능하다. 코드의 수정을 최소화시킨다. 함수 실행중에, 함수 자신을 다시 호출하는 처리 등이 가능해진다. 클래스에 정의된 데이터나 함수를 사용하기 위해서는 "인스턴스"를 생성해야 합니다. 인스턴스 (Instance)는 클래스를 실체화한 것으로 소프트웨어 세계에 구현된 구체적인 실체를 의미하며 객체를 소프트웨어에 실체화하면 그것을 인스턴스라고 부릅니다 (객체는 클래스의 인스턴스). 클래스를 가지고 있으면 하나의 클래스로 여러 개의 인스턴스를 생성 가능하기도 합니다. 그리고 각각의 .. 2021. 11. 25.
[Python] 모듈(Module)과 패키지(Package) 의미 정리 파이썬을 다룰 때 모듈(Module)과 패키지(Package)라는 단어들을 자주 접하게 됩니다. 이번 글에서는 해당 단어들의 의미를 살펴보도록 하겠습니다. 1. 모듈 (Module) 먼저 모듈입니다. 모듈은 그대로 해석을 하면 '구성단위'입니다. IT 영역에서 본체에 대한 독립된 하위 단위라고도 할 수 있는데요 모듈을 이용하면 예를 들어서 복잡하고 줄이 긴 코드를 작성할 때 사용 용도에 따라서 파일로 구분하여 다른 파일에서 해당 클래스나 함수가 필요할 시 가져와서 사용이 가능하도록 해주는데 이러한 기능을 하는 클래스나 함수 등을 모듈이라고 부릅니다. 파이썬에서는 전역 변수 및 함수 등을 모아둔 파일입니다. 간단한 예제를 통해서 설명드리겠습니다. 1-1. 모듈 만들어보기 * 개발 환경은 Pycharm을 이.. 2021. 11. 24.
[ML] Cross validation(교차 검증)의 개념, 의미 머신러닝을 수행하기 위해서 목표로 하고자 하는 영역에서 주어진 데이터에 어떠한 경향이 있는지를 파악하도록 하는 학습과정이 필요로 합니다. Data를 통해서 좋은 네트워크를 만들수 있으며 그리고 데이터를 이용하여 좋은 네트워크인지를 판단할 수가 있습니다. Cross validation에 대해서 적어보기 이전에 우선 머신러닝에서 다루는 data의 개념들을 먼저 살펴보겠습니다. 주어진 data가 있을때 우리는 주어진 데이터를 이용하여 목적에 맞는 모델을 만들어야 합니다. 모델을 만들기 위해서는 위에서 언급드렸다시피 학습과정이 필요한데, 주어진 data를 학습 데이터 (Training Set)로 활용할 수 있습니다. 하단과 같이 data 전체를 학습 데이터로 활용이 가능합니다. 그러나 문제점은 머신러닝 모델은 .. 2021. 11. 22.
[ML] Linear Regression 선형 회귀 선형 회귀의 문제는 답 또는 성질이 정해져 있는 데이터들을 바탕으로 실제의 값을 예측하는 문제입니다. 쉬운 예제로는 어떠한 지역에서의 땅 크기(Size) 및 집 값(Price)의 데이터가 주어졌을 때 이 데이터를 바탕으로 1350의 땅 크기는 집값이 얼마인지를 예측하는 문제가 되겠습니다. 이러한 선형 회귀의 문제는 전 포스트에서 언급한 Supervised Learning (지도 학습)의 한 영역입니다. 예측을 하기 위해서는 학습을 해야합니다. 학습을 위해서는 우선 학습 데이터 (Training Data)가 필요합니다. 위의 예제에서의 학습 데이터는 바로 하단과 같이 땅 크기와 집값이 1:1로 대응되어 나열된 데이터(표)가 되겠습니다. 여기서 X와 Y가 있는데 X는 입력 변수를 의미하며 Y는 출력 변수를 .. 2021. 11. 22.
반응형