반응형

분류 전체보기 429

GPL, LGPL, BSD, MIT, Apache License개념 설명

GNU General Public License(GPL)GNU 프로젝트로 배포하는 소프트웨어에 적용하기 위해 FSF에서 작성 소스코드 공개에 대한 해석이 까다롭고 강력한 제한을 가집니다. 즉 GPL SW에 의해 파생된 SW는 그것의 전체 소스코드 또한 공개해야 합니다. 예) GPL OSS를 라이브러리로 사용한 프로그램을 배포하려면 그것의 전체 소스코드를 공개해야함 Linux Kernel, Git, WordpressGNU LGPL(Lesser General Public License)LGPL OSS를 정적(static) 또는 동적(dynamic) 라이브러리로 사용한 프로그램을 개발하여 배포할 경우에는 프로그램의 소스코드를 공개하지 않아도 되며, LGPL OSS를 사용했다는 것만 명시하면 됩니다. BSD(B..

OSS 라이선스 준수사항 및 sw 라이센스

SW 관련 지식재산권저작권창작물에 대하여 창작자가 취득하는 권리로서 창작의 결과물을 보호하며, 창작과 동시에 권리가 발생한다.등록절차가 필요없다.특허권발명에 관하여 발생하는 독점/배타적 지배권으로 법에 정해진 절차에 의해 출원을 하여야 하며, 심사를 통해 부여된다.특허 등록 필요상표권상표권자가 지정상품에 관하여 그 등록상표를 사용할 독점적인 권리로서 일정한 절차에 따라 등록하여야 효력 발생상표등록 필요영업비밀공개되지 않은 SW의 경우 영업비밀로서 보호를 받을 수 있으며, 공개된 SW라고 하더라도 아이디어에 대한 부분은 영업비밀로 보호를 받을 가능성이 높다. SW 라이센스SW는 그것을 개발한 사람(권리자)만 사용할 수 있으며 권리자가 다른 사람에게 일정한 조건으로 특정 행위를 할 수 있는 권한을 부여할 수..

OSS 장단점 활용 및 개발 과정

OSS의 장점비용이 들지 않음소스 코드를 수정하여 사용 가능보안 취약점을 발견하기 쉬움누구나 버그 수정 가능특정 업체 의존xOSS의 단점고객지원 (매뉴얼, 콜센터) 거의 없음비숙련자의 사용 어려움OSS 활용 방식OSS사용OSS를 가져다 쓰기만 하는 활용, 관련 기술 무상 확보 OSS기여오픈 소스를 개발하고 배포하는데 도움을 주는 활동기능 추가, 소스코드 수정, 버그 수정, 테스트, 문서작성, 오타수정, 번역 등등 다양한 활동을 통해 기여할 수 있음 신규 OSS개발새로운 OSS를 개발함, 기술 주도권을 확보 OSS 개발 과정처음에는 소수의 프로젝트 리더와 신뢰받는 개발자로부터 시작하여 전세계의 사용자가 개발자로 프로젝트에 기여함

[오픈소스소프트웨어] OSS의 개념과 등장배경

Open Source Software공개 소프트웨어 줄여서 오픈소스라고도 하며 최근에는 Free Open Source Software(FOSS)라고 부르기도 합니다. 소스 코드가 공개되어 누구나 사용, 수정, 재배포를 할 수 있는 소프트웨어로서 독점 소프트웨어와 사유 소프트웨어 또는 클로즈드 소스 소프트웨어와 반대의 개념입니다.  오픈소스에는 Linux 운영체제, Eclipse, Apache 웹서버 등이 있습니다. 이와 반대되는 독점 소프트웨어에는 Microsoft를 들 수 있습니다.  소프트웨어 개념의 변천사~70년대까지는 소프트웨어는 하드웨엍에 무료로 제공되는 개념이었습니다. 이후 70~80년대에 소프트웨어의 독립적인 제품화가 늘면서 저작권이 강화되었고 1983년 리처드 스톨만의 자유소프트웨어 운동이..

선형 회귀 가중치 w와 비용함수 관계 시각화코드

선형 회귀 가중치 w와 비용함수 관계 시각화코드import tensorflow as tfimport matplotlib.pyplot as plt# 데이터 정의X = tf.constant([1, 2, 3], dtype=tf.float32)Y = tf.constant([1, 2, 3], dtype=tf.float32)# 학습할 변수 정의W = tf.Variable(initial_value=0.0, dtype=tf.float32)# W의 값과 코스트를 저장할 리스트W_val = []cost_val = []# W의 값을 변화시키면서 비용(cost) 계산for i in range(-30, 50): # W 값을 업데이트 W.assign(i * 0.1) # 가설 계산 hypothesis ..

Hypothesis and Cost

H(x) = Wx + b이 cost를 최소화하는 Linear Regression을 구하는 것을 목표로 잡습니다.  Simplified hypothesis 작업을 해준다면 b를 빼주고 작업을 해주면 됩니다.  이렇게 W = 1일때, cost(W)는 얼마일까요? W=1일때 cost는 (1 * 1 - 1 )^2 + (1 * 2 - 2 )^2 + (1 * 3 - 3)^2 = 은 0이 됩니다.  W가 1일때 cost(W)은 0이 되는 것을 알 수 있습니다.같은 방법으로 W가 0일 때는 cost(W) = 4.67이 나오게 됩니다.  Gradient descent algorithm경사 하강 알고리즘이라고 부르며 이는 최적화 알고리즘 중 하나로 함수의 최솟값(혹은 최댓값)을 찾기 위해 사용됩니다. 주로 머신러닝에서 모..

텐서플로우와 Linear regression, Cost function

텐서플로우 구조먼저 그래픽을 만듭니다. 그 다음 sess.run으로 실행시키는데요. 그리고 그래프를 업데이트 해주는 것입니다. 그래프 실행 값을 던져줄 때a = tf.placeholder(tf.float32)b = tf.placeholder(tf.float32)adder_node = a + bprint(sess.run(adder_node, feed_dict = {a: 3, b: 4.5}))print(sess.run(adder_node, feed_dict = {a: [1,3], b: [2.4]}))이렇게 placeholder로 던져줄 수 있습니다.  regression(Linear)가설Linear한 모델이 우리 데이터에 맞을 것이다 라고 가정을 합니다. 가정을 했을 때 Linear 즉 선을 긋습니다. 가능..

머신러닝의 이해

아서 사무엘의 머신러닝 정의"프로그램이 개발자가 정하지 않고 프로그램이 학습하여서 무언가를 배우는 능력을 갖는 프로그램" 머신러닝을 할 때 프로그램은 학슴을 해야합니다. 그래서 데이터가 미리 주어져야하는데요. 그 데이터가 주어지는 방식에 따라서 지도학습, 비지도학습이라고 나뉘어지게 됩니다. 지도학습정해져있는 데이터을 기반으로 학습을 하는 것 비지도학습레이블이 없는 데이터를 기반으로 기계가 스스로 학습을 하는 것   지도학습Regression시험의 성적을 예측하는 것 Binary Classification성공했느냐 실패했는댜 두가지로 나누는 것 ( 범주를 통해 나누는 것 )을 바로 분류라고 합니다. 둘 중에 하나를 고르는 것입니다.  Multi-label classification A, B, C, E, F..

머신러닝의 정의와 유형

머신러닝의 정의Artgyr Samuel(1959)명시적으로 프로그래밍하지 않아도 컴퓨터가 학습할 수 있는 능력을 부여하는 연구 분야 ex) 1950년대의 체커 게임 프로그램 머신러닝의 두 가지 유형 지도학습x - > yinput - > output label주어진 입력 x에 대해 올바른 y의 정답을 입력하고 학습 알고리즘이 결국 출력값을 합리적으로 예측하거나 추측할 수 있도록 하는 것입니다.  즉 예를들면 input이 audio라면 output이 text transcripts 라면 speech regcognition이 됩니다. 정답이 포함된 데이터로 모델을 학습시키는 방식입니다. 데이터는 입력과 출력으로 구성되어 목표는 새로운 입력 데이터에 대해 올바른 출력을 예측할 수 있도록 모델을 훈련하는 것입니다...

동적 메모리 할당과 동적 객체 생성

동적 메모리 할당변수를 선언하는 대신 프로그램의 요청으로 메모리를 할당받는 방식입니다. C에서는 malloc 함수를 호출하여 동적메모리할당을 요청하면 요구하는 크기의 메모리를 할당하고 그 시작 주소를 반환합니다. C++에서는 new 연산자를 사용합니다. new 연산자는 생성된 객체의 주소를 반환합니다.  malloc 함수int n;scanf("%d", &n);int* p = (int*)malloc(n * sizeof(int));if (p = NULL) { /*동적 메모리 할당이 실패*/ /*적절한 조치를 취한다.*/}p[0] = 12;p[1] = 24;*(p + 2) = 36; 배열 재할당동적으로 생성된 배열은 공간이 부족할 경우 더 큰 배열을 생성하여 사용할 수 있습니다. int *array = (in..

반응형