분류 전체보기
[Android] 이벤트 처리
[Android] 이벤트 처리
2021.10.18버튼을 눌렀을 때 목차가 열리고 숫자가 추가되는 등 다양한 기능을 수행하게 하기 위해서 버튼에 대한 이벤트 처리가 필요하다. 리스너를 구현해 특정 행동에 대한 이벤트를 처리할 수 있다. 한 버튼에 대해 이벤트가 발생하고, 오버라이딩 된 메서드를 호출해 이벤트를 처리하는 방식으로 동작한다. public class MainActivity extends AppCompatActivity { String prevstr = ""; int intresult = 0; int pluscount = 0; boolean pluscheck = false; String tempstr = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea..
[Java] 열거형 (enums)
[Java] 열거형 (enums)
2021.10.18순서가 있는 자료들을 나열할 때 사용한다. 여러 상수(final)들을 정의할 때 유용하게 사용된다. 자바의 열거형은 값과 타입을 모두 체크해 타입에 안전한 열거형이라고 한다. 열거형은 다음과 같은 형식으로 정의할 수 있고, 꼭대기의 클래스 / 인터페이스 / static 에만 정의될 수 있다. (메서드에서는 정의될 수 없다.) 열거형 상수간에는 "==" 로 비교할 수 있다. String을 비교할 때는 원래 equals()메서드를 통해 비교했는데, 열거형은 둘 다 가능하다. (그만큼 성능이 좋고, 빠르다.) 다만, 같은 비교 연산자는 사용할 수 없는데, 대신 compareTo()메서드를 이용해 열거형 상수들을 비교할 수 있다. 다음 코드를 작성했을 때 a b c d abcd 에는 각각 0 1 2 ..
[Java] 지네릭스 (Generics)
[Java] 지네릭스 (Generics)
2021.10.17지네릭스를 통해 타입안정성을 확보하고 코드 작성 시 형변환을 생략해 코드를 간결하게 작성할 수 있다. 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 클래스 (List같은 것들) 에 컴파일 시 타입체크를 해 주는 기능을 한다. 실제로 큰 프로젝트를 진행할 때 타입 안정성때문에 쓰레기값이 나오는 경우가 있으면 안 되니까.. 런타임체크가 아니라 컴파일체크인 것도 알아놓자. 계속 봐도 모르겠으면 코드 짜면서 공부하고, 지금은 지네릭스는 타입체크를 위한 이름표구나~ 라고만 생각하자. 타입 안정성 + 형변환 생략(성능 향상) 지네릭 클래스는 클래스나 메서드에 선언할 수 있다. 왼쪽 코드를 지네릭 클래스로 변환하면 왼쪽과 같이 변한다. 여기서 T는 타입 변수로, 아무거나 써도 되고 안에는 comma를 사용해 여러..
Machine Learning - Unsupervised Learning
Machine Learning - Unsupervised Learning
2021.10.17Unsupervised Learning은 학습 데이터만 주어지고, 정답은 주어지지 않는 Machine Learning을 말한다. Unsupervised Learning의 여러 알고리즘에 대해 살펴보자. 1. K-means Clustering 2. Hierachical Clustering 1. K-means Clustring K개의 그룹으로 나눠 그룹화 한다. K = 3일때 Clustring 한 결과. 다른 색을 가진 세 가지 별을 찍고, 거리를 계산한 후 각각의 점들과 별의 거리를 계산해 가장 가까운 별의 색상으로 점의 색상을 바꾼다. 하지만, 이걸로는 제대로 그룹화 된 것 같지 않다. 별을 이동시키며 그룹화를 업데이트하자. 별을 이동시킬 때 위치는 같은 색상을 가진 점들의 평균 위치를 계산하고 그 위치..
Machine Learning - Supervised Learning (5)
Machine Learning - Supervised Learning (5)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 5. Support Vector Machine Vector Line을 그어서 분류한다. 어떻게 Vector Line을 그어야 가장 잘 분류할 수 있을까? 일반화의 관점에서 생각하면 답을 알 수 있다. 바로 네번째이다. 두 그룹과의 boundary가 되는 구분선의 최소를 최대로 늘리는 Vector Line을 그어야 한다. 즉, margin이 최대한이 되는 직선으로 나눈..
Machine Learning - Supervised Learning (4)
Machine Learning - Supervised Learning (4)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 4. Linear Models 선형 모델. Classification Regression (Regression을 먼저 공부하고 Classification을 공부한다.) Decision Tree 알고리즘에서는 Boundary를 나눌 때 축 상으로 (바둑판처럼) 나눌 수 밖에 없지만, 선형 모델에서는 직선으로 분류할 수 있다. y = ax +b Linear Regress..
Machine Learning - Supervised Learning (3)
Machine Learning - Supervised Learning (3)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 여러 가지 알고리즘들이 있고, 상황에 따라 다른 알고리즘을 적용해야 한다. 3. K-Nearest Neighbors (유유상종) 입력 데이터에 가장 가까운 K개의 데이터 레이블을 표결해 출력 클래스를 결정한다. 이전에 살펴본 스팸 메일 구분하기로 예시를 들면, 먼저 그래프로 스팸메일과 일반 메일들을 데이터화 한 다음 어느 한 메일이 도착했을 때 그 메일 주변에 어떤 ..
Machine Learning - Supervised Learning (2)
Machine Learning - Supervised Learning (2)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest neighbor 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) Linear Model은 Neural Network와 Deep Learning의 기반이 되기 때문에 자세히 알아둬야 한다. 2. Decision Tree (Classification) 결정 트리, Tree Structure 라고도 불린다. node : 질문들 branch : 질문의 답에 대한 분기 이미지를 Decision Tree에 집어넣고, 질문을 한다. 손가락이 몇..
Machine Learning - Supervised Learning (1)
Machine Learning - Supervised Learning (1)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest neighbor 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) Linear Model은 Neural Network와 Deep Learning의 기반이 되기 때문에 자세히 알아둬야 한다. 1. Naïve Bayesian Classifier (Classifier) 영화의 댓글을 보고 긍정적인 평가인지, 부정적인 평가인지 분류하는 Machine Learning을 공부해보자. 컴퓨터는 데이터로 텍스트 자체를 받아들이고 분석하는 것 보다 ..
Machine Learning (2)
Machine Learning (2)
2021.10.17Machine Learning Techinique에 대해서 알아보자. 1. Supervised Learning 2. Unsupervised Learning 3. Reinforcement Learning 1. Learning with a Labled Training set. 지난 시간에 공부했던 방법이다. Classfication(분류) : 딱 떨어지는 결과를 얻는다. 개와 고양이를 판단하는 문제에서는 개 or 고양이를 값으로 얻는다. 입력에 대한 class를 예측한다. 스팸 메일 분류, 이미지 인식 등이 있다. Regression(회귀) : Labeling 이 Continuous하다. 주가가 900~999 사이에서 형성된다면 딱 떨어지는 결과 말고 900 선에서 결정된다 라고 표현하는것과 비슷하다. 출력..
Machine Learning (1)
Machine Learning (1)
2021.10.17앞에서 공부했듯, 사람이 직관의 영역으로 해결하는 문제들을 컴퓨터도 할 수 있도록 하는 기술을 머신러닝이라고 한다. 1997 Mitchell이 Machine Learning을 정의했다. 머신러닝은 작업 T 를 수행하기 위하여 경험 E 로부터 획득한 데이터를 기반으로 모델을 자동으로 구성하여 성능 P 를 향상시킬 수 있는 컴퓨터 프로그램이다. 작업 T는 시험 공부를 할 때 수업을 듣는 것을 의미하고 경험 E는 쪽지시험을 보고, 퀴즈를 풀고 연습문제를 푸는 것을 의미하며 성능 P는 시험을 보는 것을 의미한다. 위를 통해서 학습을 진행하는데, 기계도 위와 같은 방식으로 학습을 진행한다. 다음과 같은 이미지를 구분하는 머신러닝을 수행한다고 생각하자. (전통적인) 머신 러닝은 다음과 같은 절차로 진행된다. 1. ..
Machine Learning / Deep Learning
Machine Learning / Deep Learning
2021.10.17지난 시간에 컴퓨터과학 분야에서의 인공지능에서도 다뤘듯, 학문 간의 포함관계는 다음과 같이 정의된다. Deep Learning과 Machine Learning을 비교한다고 하면, 전통적인 Machine Learning과 Deep Learning을 비교하는 것으로 이해하자. Machine Learning 기계가 스스로 학습을 한다. Java C Python 등으로 수행하는 일반적인 프로그래밍이라면, 입력을 받고 규칙을 프로그래밍해 답을 출력하지만, Machine Learning은 입력과 출력을 통해 규칙을 찾는 형식으로 진행한다. 수능 수학을 준비할 때, f(x)라는 함수는 문제에서 주어지고, 이 함수가 왜 이렇게 정의됐는지에 대해서는 생각할 필요가 없다. 머신러닝에서는 함수가 어떻게 정의되는지, 어떤 규..