[머신러닝] 기계학습 방법
2022. 2. 11. 20:20
프로그래밍/머신러닝&딥러닝
기계학습 방법 • 톰 미첼의 공식적인 머신러닝 정의 ✔ "미래 경험을 통한 성능이 향상되면 기계는 자신의 경험을 활용할 수 있을때마다 학습한다" • 미래의 실행에 따라 변환은 완전히 무시됨 • 학습은 실제 실행하는 데 어려움이 있음 • 인간의 뇌는 자연적인 학습 능력을 가지지만, 컴퓨터는 필요한 조건에 따라 명시적으로 학습 • 머신러닝 알고리즘은 이해와 구별을 위해 구현하는 데 도움을 줌 머신러닝과 인간학습 비뵤 • 인간과 기계의 기본적인 학습 과정은 유사함 • 학습 과정은 네 개의 구성 요소로 구분 1️⃣ 데이터 셋 저장소(Data Storage) 기억(Memory), 관찰(Observation), 소환(Recall)을 통한 미래 추론은 적합하고 현실적인 토대를 바탕으로 함 2️⃣ 추상화개념(Abstr..
[머신러닝] 머신러닝의 한계
2022. 2. 10. 20:26
프로그래밍/머신러닝&딥러닝
머신러닝의 한계 1️⃣ 머신러닝 알고리즘의 한계 • 알고리즘 ✔ 데이터를 통해 미래 예측의 기초 패턴 식별 ✔ 학습 내용을 정확하게 파악하고, 파라미터의 포괄적 영역에 실제로 적용 • 머신러닝 ✔ 인간 뇌의 상대적인 영역만 모방함 ✔ 학습한 파라미터의 범위 내에서 추정하고 적용 범위가 유연함 • 컴퓨터 ✔ 경험의 축적이 없음 ✔ 논리적인 단계를 상식적으로 추론하는 능력의 한계 2️⃣ 머신러닝 광고의 문제점 • 광고 방문 이력을 분석하여 학습한 데이터마이닝 패턴을 웹 사이트 광고 제시에 활용 👉 웹 사이트 광고에 사용자의 관심 상품에 대한 광고를 제시함 ✔ 고객은 광고 순환을 무한 반복하게 됨 ✔ 사람의 언어를 이해하거나 번역과 음성을 인식하는 등의 기능은 머신러닝 능력의 한계 ✔ 자신이 학습한 데이터만 ..
[머신러닝] 머신러닝 성공 유형 및 사용 사례
2022. 2. 9. 20:10
프로그래밍/머신러닝&딥러닝
머신러닝 사용과 한계 • 머신러닝의 문제 해결 시 이해하는 능력은 상대적인 한계가 존재함 • 기계 학습은 순수한 지적 능력에 해당 • 빅데이터에서 패턴을 찾는 것은 사람보다 컴퓨터가 더 적합함 • 분석하는 것에 동기를 부여하고 결과의 의미와 실행 측면에서 사람이 필요함 • 기계는 질문의 이해와 유형별 질문 파악에 취약함 • 컴퓨터가 이해 가능한 방식의 질문이라면 파악 용이 • 머신러닝의 성공적 활용, 개선 영역, 피해 상황을 고려하여 파악해야 함 머신러닝 성공 유형 • 전문적 지식의 대체보다는 지식의 증가 필요 • 인류의 생명 보호를 위해 전문 의사와 공유 • 스마트 홈, 자동차 제작에 엔지니어와 프로그래머 활용 • 사회학자는 사회적 지식을 쌓는데 도움이 됨 • 정부기관, 기업, 병원, 과학연구소 등에서..
[머신러닝] 머신러닝의 개념
2022. 2. 8. 20:59
프로그래밍/머신러닝&딥러닝
머신러닝의 개념 머신러닝의 기원 • 머신러닝 : 데이터의 지능적인 행동에 따른 컴퓨터 알고리즘 개발 및 연구 분야 • 대용량에 따른 연산 능력과 데이터셋을 통계적 방법으로 분석하는데 필요한 원동력 • 데이터, 통계적 방법, 연산 계산 능력을 신속하게 처리하는 환경 👉 머신러닝 발전 사이클 데이터마이닝 • 머신러닝과 상관관계인 데이터마이닝은 데이터베이스 측면에서 새로운 통찰력 관점 • 데이터마이닝 ✔ 실행 가능한 분야에서 체계적으로 추적 ✔ 문제 해결에 있어서 데이터마이닝은 컴퓨터를 통해 사람이 사용할 패턴을 검색하고, 가르치는데 집중함 (머신러닝은 컴퓨터의 데이터 사용법에 집중) ✔ 대부분의 데이터마이닝은 머신러닝을 활용하지만 모든 머신러닝은 데이터마이닝 영역을 포함하지 않음
[Java] 람다식이란?
2022. 1. 28. 20:35
프로그래밍/JAVA
람다식 (lambda expression) 자바에서 함수형 프로그래밍을 구현하는 방식 자바 8부터 지원 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행 더보기 함수형 프로그래밍 순수 함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향을 주지 않고 매개 변수만을 사용하도록 만든 함수 함수를 기반으로 구현 입력 받은 자료를 기반으로 수행되고 외부에 영향을 미치지 않으므로 병렬처리등에 가능 안정적인 확장성 있는 프로그래밍 방식 람다식 구현하기 익명 함수 만들기 매개 변수와 매개 변수를 활용한 실행문으로 구현 두 수를 입력 받아 더하는 add() 함수 int add(int x, int y) { return x + y; } // 람다식으로 표현 (int x, int y) -> {return x +y;} ..
코틀린에서 자주 사용하는 문법 String Template
2022. 1. 21. 20:13
프로그래밍/Kotlin
String Template 변수를 출력하고 싶을 때 $를 사용 val name = "nana" println("my name is $name I'm good") 만약 변수 뒤 띄어쓰기를 하기 싫다면 대괄호{}를 사용해서 구분해야 함 val name = "nana" println("my name is ${name}I'm good")
확장 함수와 확장 프로퍼티
2022. 1. 20. 20:09
프로그래밍/Kotlin
메소드를 다른 클래스에 추가: 확장 함수와 확장 프로퍼티 기존 코드와 코틀린 코드를 자연스럽게 통합하는 것은 코틀린의 핵심 목표 중 하나임 이런 기존 자바 API를 재작성하지 않고도 코틀린이 제공하는 여러 편리한 기능을 사용할 수 는 없을까? 바로 확장 함수가 그런 역할을 해줄 수 있음 개념적으로 확장 함수는 단순함 확장 함수는 어떤 클래스의 멤버 메소드인 것처럼 호출할 수 있지만 그 클래스의 밖에 선언된 함수임 문자열의 마지막 문자를 돌려주는 확장 메소드를 추가해보자 package strings fun String.lastChar(): Char = this.get(this.length - 1) 확장 함수를 만들려면 추가하려는 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 덧붙이기만 하면 됨 클래스 ..
코틀린에서 컬렉션 만들기
2022. 1. 19. 20:54
프로그래밍/Kotlin
코틀린에서 컬렉션 만들기 컬렉션을 만드는 방법은 자바와 비슷함 val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 코틀린이 자체 컬렉션을 제공하지 않는 이유? 표준 자바 컬렉션을 활용하면 자바 코드와 상호작용하기가 훨씬 더 쉽기 때문 때문에 자바에서 코틀린 함수를 호출하거나 코틀린에서 자바 함수를 호출할 때 자바와 코틀린 컬렉션을 서로 변환할 필요가 없음 하지만 코틀린에서는 자바보다 더 많은 기능을 쓸 수 있음 fun main(args: Array) { val strings = listOf("first", "second", "..