프로그래밍
-
[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..
-
[Kotlin - Basic Types] Character, Booleans, ArraysSoftware/Kotlin : 코틀린 2019. 12. 17. 00:23
Characters Characters는 Char 자료형으로 표현된다. Characters는 숫자로 직접 취급될 수 없다. fun check(c: Char) { if (c == 1) { // ERROR: incompatible types // ... } }여기서 Characters는 문자 그대로 '1'을 의미한다. 만약 특수 문자의 경우 ''을 사용해서 나타낼 수 있다. (\t, \b, \n, \r, ', ", \ and $) 다른 문자 인코딩을 위해서는 Unicode의 escape 시퀀스 구문을 사용해야 한다: 'uFF00' Booleans Booleans는 "true" 와 "false" 두 가지 값만 가지며 booleans로 표시한다. 아래와 같은 내..
-
[Kotlin - Basic Types] NumbersSoftware/Kotlin : 코틀린 2019. 12. 9. 23:03
숫자 정수형 코틀린은 숫자들을 표현할 수 있는 자료형들을 기본적으로 제공한다. 그 중 정수 표현을 위한 자료형으로 4가지의 기본 자료형을 제공하고 있는데 이 4가지 자료형들은 각각 다른 크기와 값 범위를 가진다. Type Size(bits) Min value Max value Byte 8 -128 127 Short 16 -32768 32767 Int 32 -2,147,483,648 (-231) 2,147,483,647 (231 - 1) Long 64 -9,223,372,036,854,775,808 (-263) 9,223,372,036,854,775,807 (263 - 1) 모든 정수형들은 정수 값으로 초기화되며 그 값은 Int의 최대값 보다 크지 않는다. 만약 초기값이 이 값보다 크다면 해당 자료형은 L..
-
자바로 배우는 큐 (Queue)Software/Data Structure : 자료구조 2019. 10. 31. 01:49
개념 기본 자료 구조의 하나로 선입선출 / FIFO (First In First Out) 형태로 데이터를 추가하고 반환한다. Stack 의 후입선출 (LIFO)와 반대. 인터페이스 enqueue(value): 데이터를 입력/추가 dequeue(): 가장 처음에 입력된 혹은 스택에 가장 아래에 위치하고 있는 항목을 반환 구현 큐 또한 스택과 같이 배열과 연결리스트를 통해 구현이 가능하지만 이번에는 배열을 통한 구현을 해보았다. 아마도 개념 이해에는 더 쉬울 거라 생각된다. 큐는 선입선출(FIFO)의 형태를 가지므로 enqueue()가 호출되었을 때 순차적으로 배열에 저장을 하고 front index를 하나씩 증가시켜준다. 그리고 dequeue()가 호출되었을 때는 rear index 위치에 있는 queue..
-
자바로 배우는 스택 (Stack)Software/Data Structure : 자료구조 2019. 10. 30. 22:05
개념 기본 자료 구조의 하나로 후입선출 / LIFO (Last In First Out) 형태로 데이터를 추가하고 반환한다. 인터페이스 push(value): 데이터를 리스트에 추가 pop(): 가장 마지막에 입력된 혹은 스택에 가장 위에 위치하고 있는 항목을 반환 구현 스택은 배열(Array)와 연결리스트(Linkded list)를 통해 구현이 가능하다. Linked List로 구현하는 방법은 추후 Linked list에 대하여 알아 볼 때 같이 살펴보면 좋을 것으로 생각되며 지금은 스택의 개념을 먼저 짚고 넘어가야 하기 때문에 이해가 쉬운 배열로 간단한 스택을 구현해 보도록 하겠다. 스택은 후입선출(LIFO)의 형태를 가지므로 push()가 호출될 떄는 순차적으로 배열에 저장을 하고 pop()이 호출되..
-
[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을 사용한다. 표현식..