소프트웨어
-
[Kotlin - Basic Types] StringsSoftware/Kotlin : 코틀린 2019. 12. 20. 01:49
Strings String은 변경불가성(Immutable)으로 String의 요소는 indexing operation : s[i]로 접근 가능한 characters 이다. String은 for-loop를 통해 반복될 수 있다. for (c in str) { println(c) }+ 연산자를 통해 strings에 값을 더 붙일 수 있는데 만약 표현식에서 뒤에 붙는 값이 String이 아닌 다른 자료형일지라도 만약 앞에 값이 String인 경우 해당 연산의 값은 String이 된다. val s = "abc" + 1 println(s + "def")String literals 코틀린은 두 가지 타입의 String literals를 가지고 있다. : Escaped string은 newlines와 arbitary..
-
[Java 8] Android Studio 3.x와 Java 8Software/Android : 안드로이드 2019. 3. 12. 01:01
Android Studio 3.0 버전이 2017년 10월에 정식 배포된 지 벌써 1년이 훌쩍 지났다.당시 Android Studio 3.0에 새롭게 탑재된 신규 기능들 (Android Profiler 나 APK Profiling and debugging)과 Kotlin을 정식 지원 등 많은 변화가 있었지만 그 중 많은 안드로이드 개발자들의 관심을 받은 것은 Java 8 기능과 라이브러리들에 대한 지원이었다. 구글이 Kotlin을 안드로이그 공식 개발 언어로 지정한 것이 꽤나 신선한 충격이었지만 기존의 Java를 사용해 오던 안드로이드 개발자들에게 있어서는 Kotlin보다 Java 8에 대한 지원이 더욱 반가운 소식이었을 것이다. 그래서 이번 포스팅에서는 Android Studio 3.0이상 버전부터 지..
-
Logistic Regression: Cost FunctionSoftware/Deep Learning 2018. 12. 5. 00:10
{(x(1), y(1)), ... , (x(m), y(m))}와 같이 training set이 주어졌을 때 우리는 i번째 training example x를 x(i)라 하고 i번째 예측결과 값을 ŷ(i) 라 한다. ŷ(i) = 𝜎(wTx(i) + b), where 𝜎(z(i)) = 1 / 1+ e-z(i) ŷ(i) ≈ y(i) Loss (Error) function : Loss function은 예측값 (ŷ)와 우리가 실제로 기대하는 값 (y)의 차이를 측정한다. 다시말해 Loss function은 single traing example의 에러 값을 계산한다고 할 수 있다. Loss function의 계산식은 아래와 같다. 𝐿(𝑦̂(𝑖), 𝑦(𝑖)) = (𝑦̂(𝑖) − 𝑦(𝑖))2 / 2 𝐿(𝑦̂(𝑖),..
-
Logistic RegressionSoftware/Deep Learning 2018. 12. 3. 01:06
- ŷ - Input x가 주어졌을 때 추정 y값을 ŷ (y hat)이라고 한다. ŷ = estimate of y ŷ = P(y = 1 | x) : y is equal to one given the input features x. Parameter w and b...? w ∈ lRnx (x dimensional vector) b ∈ lR (real number) 이 Parameter을 이용해 우리는 output ŷ를 다음과 같이 표현할 수 있다. ŷ = wTx + b 근데 이 경우 문제가 하나 있다. ŷ의 값으로 우리는 0 or 1을 기대하지만 위의 식은 0보다 작은 값을 가지거나 1보다 큰 값을 가지는 경우도 발생하는 것이다. 이를 방지하기 위해 우리는 Sigmoid function을 사용한다. 표현식..
-
Binary ClassificationSoftware/Deep Learning 2018. 12. 3. 01:02
Logistic regression is an algorithm for binary classification : 로지스틱 회귀분석은 이항 분류를 위한 알고리즘이다. Binary Classifiaction은 어떤 Input값이 있을 때 Output 값으로 1 또는 0 값을 가지도록 한다. X -> Y ( 1 or 0 ) Single training example = (x, y), x ∈ lRnx , y ∈ {0, 1} ( x : x-dimensional feature vector, y : Label 0 or 1), First training example = (x(1), y(1)) and second training example = (x(2), y(2)) ... last (x(m), y(m)) (m =..
-
동적 프로그래밍 (Dynamic Programming)Software/Algorithm : 알고리즘 2018. 9. 17. 23:50
사용 조건 작은 문제의 최적 솔루션이 그 보다 더 큰 문제의 최적 솔루션에 포함되는 경우 재귀적인 방법으로 구현 시 중복 호출로 인한 큰 비용/비효율이 발생하는 경우 피보나치 수열 피보나치 수열은 동적 프로그래밍의 사용 동기와 조건, 구현을 가장 쉽고 명료하게 확인할 수 있는 예제. fn = fn-1 + fn-2 (n >= 3) f1 = f2 = 1 (n = 1, 2) 재귀호출 방식 의사 코드 (Pseudo-code) Fibonacci(n) { if (n = 1 or n = 2) then return 1; else return Fibonacci(n - 1) + Fibonacci(n - 2); } 구현 (Implement) // Not to use dynamic programming.. int fibona..
-
시퀀스 다이어그램 [Sequence Diagram]Software/UML 2018. 9. 10. 23:04
Sequence Diagram 이란? 문제 해결을 위한 객체를 정의하고 객체간의 상호작용 메시지 시퀀스를 시간의 흐름에 따라 나타내는 다이어그램(Diagram) 구성 요소 - 활성 객체 시스템의 행위자 혹은 시스템 내의 유효한 객체 라이프라인(Life line)을 가진다. 라이프라인 라이프라인은 상호작용에 참여하는 오브젝트를 의미 그림 1. Object와 Life line - 메시지 (Message) 서로 다른 객체간의 상호작용 혹은 의사소통 통신을 정의하는 요소. 하나의 객체 라이프라인으로 부터 다른 객체 라이프라인까지 선+화살표로 표시되며 메시지는 그 선의 위에 표시 그림 2. 메시지 (Message) 메시지 유형 유형의미동기 메시지(Synchronous message)메시지 전송 객체가 계속하기 전..
-
[ImageView] ScaleType: Matrix (예제)Software/Android : 안드로이드 2018. 8. 20. 23:41
예제: 이제 실제 코드를 통해서 Matrix의 Scalling, Rotation, Translation 등을 살펴보도록 하자. 예제에 앞서 일반적으로 Scaling -> Rotation -> Translation 순으로 연산 한다는 것을 기억하자. 연산의 순서가 달라지면 실제 연산 결과 값이 달라 질수 있기에 연산 순서에 꼭 신경 쓰도록 하자. 목표 300 * 200 이미지를 3배로 Scaling하고 90도로 회전 시킨 후 Center crop하여 500 * 500 ImageView에 보이도록 한다. scaleType 설정 Layout xml에서 ImageView에서 scaleType을 matrix로 설정. 이 경우 ImageView의 사이즈 보다 Image의 사이즈가 작기 때문에 ImageView의 하..