실제 비즈니스에서 많이 활용되는 사례를 중심으로 어떻게 기존 데이터를 이용하여 알고리즘을 선택하고, 학습하여, 예측모델을 구축 하는지 jupyter notebook을 이용하여 실제 코드를 이용하여 실습할 수 있다.
강의 초반에 강조하는 것 처럼, 머신러닝 알고리즘은 나중에 자세히 설명하는 과정이 따로 있고, 이번 강의는 실제 어떻게 활용하는지에 완전히 초점이 맞추어져 있어서, 알고리즘은 아주 간략한 수준으로 설명해 준다. (좀 더 구체적인 내용은 심화과정이 따로 있음)
http://blog.naver.com/freepsw/221113685916 참고
https://github.com/freepsw/coursera/tree/master/ML_Foundations/A_Case_Study 코드 샘플
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
소개드릴 논문은 오래전에 나왔고, 노드의 구조 또한 단순 하지만, 거리 학습 기반의 One Shot 러닝을 고안하는데 크게 기여하였고, 이전엔 사람이 직접 설계한 특징으로
거리학습을 진행하였지만, 처음으로 Siamese Network를 통하여 DNN을 활용했다는 점에서 의미가 큽니다. 현업에서도 클래스는 많고, 이미지는 적은경우에 대해 유사도를 판단해야 하는 경우 자주 쓰이는 기법이 될 수 있습니다.
오늘 논문 리뷰를 위하여 이미지처리팀 '이예은'님이 자세한 리뷰 도와주셨습니다.
Intriguing properties of contrastive lossestaeseon ryu
소개드릴 논문은 과거 리뷰를 진행한 Contrastive learning에 이어 꽤나 높은 성능을 가져오고 Contrastive loss로 학습시켰을때 나타나는 특성들이 어떻게 나타나는지 실험을 통해 설명을 하는대요, Contrastive loss를 일반화 한 후 그로부터 나오는 여러 종류의 Contrastive loss의 성능, 또 다양한 객체가 이미지에 있을때 Contrastvie Learning은 Representation을 얼마나 잘 학습하는지, Contrastive learning에서 Augmentation이 얼마나 중요한지에 대한 부분입니다. 오늘 논문 리뷰를 위해 펀디멘탈팀의 이재윤님이 Contrastive learning부터 , 논문에 대한 자세한 리뷰까지 도와주셨습니다.
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
소개드릴 논문은 오래전에 나왔고, 노드의 구조 또한 단순 하지만, 거리 학습 기반의 One Shot 러닝을 고안하는데 크게 기여하였고, 이전엔 사람이 직접 설계한 특징으로
거리학습을 진행하였지만, 처음으로 Siamese Network를 통하여 DNN을 활용했다는 점에서 의미가 큽니다. 현업에서도 클래스는 많고, 이미지는 적은경우에 대해 유사도를 판단해야 하는 경우 자주 쓰이는 기법이 될 수 있습니다.
오늘 논문 리뷰를 위하여 이미지처리팀 '이예은'님이 자세한 리뷰 도와주셨습니다.
Intriguing properties of contrastive lossestaeseon ryu
소개드릴 논문은 과거 리뷰를 진행한 Contrastive learning에 이어 꽤나 높은 성능을 가져오고 Contrastive loss로 학습시켰을때 나타나는 특성들이 어떻게 나타나는지 실험을 통해 설명을 하는대요, Contrastive loss를 일반화 한 후 그로부터 나오는 여러 종류의 Contrastive loss의 성능, 또 다양한 객체가 이미지에 있을때 Contrastvie Learning은 Representation을 얼마나 잘 학습하는지, Contrastive learning에서 Augmentation이 얼마나 중요한지에 대한 부분입니다. 오늘 논문 리뷰를 위해 펀디멘탈팀의 이재윤님이 Contrastive learning부터 , 논문에 대한 자세한 리뷰까지 도와주셨습니다.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
4.representing data and engineering features(epoch#2)Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
[한국어] Multiagent Bidirectional- Coordinated Nets for Learning to Play StarCra...Kiho Suh
모두의연구소에서 발표한 “Multiagent Bidirectional-Coordinated Nets for Learning to Play StarCraft Combat Games” 자료를 공유합니다.
스타크래프트를 시험 시나리오로 사용해서 여러 agent들이 한 팀으로 행동하게 하여 적과 싸워서 이기는게 목적입니다. 그래서 한 팀으로 행동하기 위해서는 communication이 엄청 중요합니다. 수많은 시나리오가 일어날수있는 스타크래프트에서는 확장 가능하면서 효과적인 communication protocol이 필요하고 BiCNet with vectorized extension of actor-critic formulation이라는것을 써서 이것을 해결합니다.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
4.representing data and engineering features(epoch#2)Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
[한국어] Multiagent Bidirectional- Coordinated Nets for Learning to Play StarCra...Kiho Suh
모두의연구소에서 발표한 “Multiagent Bidirectional-Coordinated Nets for Learning to Play StarCraft Combat Games” 자료를 공유합니다.
스타크래프트를 시험 시나리오로 사용해서 여러 agent들이 한 팀으로 행동하게 하여 적과 싸워서 이기는게 목적입니다. 그래서 한 팀으로 행동하기 위해서는 communication이 엄청 중요합니다. 수많은 시나리오가 일어날수있는 스타크래프트에서는 확장 가능하면서 효과적인 communication protocol이 필요하고 BiCNet with vectorized extension of actor-critic formulation이라는것을 써서 이것을 해결합니다.
2016년 4월 9일
microsoft 세미나 발표자료입니다.
발표는 PPT 로 할거고 애니메이션등 약간의 내용을 추가해서 발표할 예정입니다.
알파고관련된 내용만있는 축약본은 아래링크에 있습니다.
http://www.slideshare.net/redrebel/20160409-ms-ml
모두를 위한 Deep Reinforcement Learning 강의를 요약정리
http://hunkim.github.io/ml/
실습에 사용된 코드
https://github.com/freepsw/tensorflow_examples/tree/master/20.RL_by_SungKim
[한국어] Neural Architecture Search with Reinforcement LearningKiho Suh
모두의연구소에서 발표했던 “Neural Architecture Search with Reinforcement Learning”이라는 논문발표 자료를 공유합니다. 머신러닝 개발 업무중 일부를 자동화하는 구글의 AutoML이 뭘하려는지 이 논문을 통해 잘 보여줍니다.
이 논문에서는 딥러닝 구조를 만드는 딥러닝 구조에 대해서 설명합니다. 800개의 GPU를 혹은 400개의 CPU를 썼고 State of Art 혹은 State of Art 바로 아래이지만 더 빠르고 더 작은 네트워크를 이것을 통해 만들었습니다. 이제 Feature Engineering에서 Neural Network Engineering으로 페러다임이 변했는데 이것의 첫 시도 한 논문입니다.
최보경 : 실무자를 위한 인과추론 활용 - Best Practices
발표영상 https://youtu.be/wTPEZDc6fw4
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
Intro to JavaScript - Week 1: Value, Type, OperatorJeongbae Oh
Intro to Programming with JavaScript Seminar, Fall 2017 semester
Week 1: Value, Type, Operator
Led by Jeongbae Oh, in conjunction with YCC (Yonsei Computer Club) @ Yonsei University
This seminar intends to introduce newcomers to programming using JavaScript, one of the most versatile languages of the modern world.
데이터를 둘러싼 정책과, 기업과 기술의 진화는 빠르게 변화하고 있으며, 모든 지향점은 기업들이 다양한 데이터를 활용하여 경쟁력을 확보하고 이를 통해 AI기반의 혁신을 하고자 하는데 있다.
이 과정에서 수 많은 기업의 업무 전무가, 데이터 사이언티스트 등이 다양한 기업의 혁신을 지원할 수 있는 AI 모델을 검증하는 과정을 거치게 됩니다.
하지만, 이렇게 수 많은 AI 모델이 실제 비즈니스에 적용되기 위해서는 인프라, 및 서비스 관점의 기술이 반드시 필요하게 됩니다.
MLOps는 기업에 필요한 혁신적인 아이디어(AI Model)을 적시에 비즈니스 환경에 적용할 수 있도록 지원하는 기술 및 트렌드 입니다.
주요 내용은
- 데이터를 둘러싼 환경의 변화
- 기업의 AI Model 적용시 마주하는 현실
- MLOps가 해결 가능한 문제들
- MLOps의 영역별 주요 기술들
- MLOps 도입 시 기업의 AI 환경은 어떻게 변할까?
- AI 모델을 비즈니스 환경에 적용(배포)한다는 것은?
2021년 12월 코리아 데이터 비즈니스 트렌드(데이터산업진흥원 주최)에서 발표한 내용을 공유 가능한 부분만 정리함.
발표 영상 참고 : https://www.youtube.com/watch?v=lL-QtEzJ3WY
Cloud DW technology trends and considerations for enterprises to apply snowflakeSANG WON PARK
올해 처음 오프라인으로 진행된 "한국 데이터 엔니지어 모임"에서 발표한 cloud dw와 snowflake라는 주제로 발표한 내용을 정리하여 공유함. (2022.07)
[ 발표 주제 ]
Cloud DW 기술 트렌드와 Snowflake 적용
- Modern Data Stack에서 Cloud DW의 역할
- 기존 Data Lake + DW와 무엇이 다른가?
- Data Engineer 관점에서 어떻게 사용하면 좋을까? (기능/성능/비용 측면의 장점/단점)
[ 주요 내용 ]
- 최근 많은 Data Engineer가 기존 기술 스택(Hadoop, Spark, DW 등)의 기술적/운영적 한계를 극복하기 위한 고민중.
- 특히 Cloud의 장점과 운영 및 성능을 고려한 Cloud DW(AWS Redshift, GCP BigQuery, DataBricks, Snowflake)를 고려
- 이 중 Snowflake를 실제 프로젝트에 적용한 경험과 기술적인 특징/장점/단점을 공유하고자 함.
작년부터 정부의 데이터 정책 변화와 Cloud 기반의 기술 변화 가속화로 기업의 데이터 환경에도 많은 변화가 발생하고 있고, 기업들은 이에 적응하기 위한 다양한 시도를 하고 있다.
그 중심에 cloud dw (또는 Lake house)가 위치하고 있으며, 이를 기반으로 통합 데이터 플랫폼으로의 아키텍처로 변화하고 있다. 하지만, 아직까지 기존 DW 제품과 주요 CSP(AWS, GCP, Azure)의 제품군을 다양하게 시도하고 있으나, 기대와 다르게 생각보나 낮은 성능 또는 비싼 사용료, 운영의 복잡성으로 인한 많은 시행착오를 거치고 있다.
이 상황에서 작년에 처음 검토한 snowflake의 다양한 기능들이 기업들의 고민과 문제를 상당부분 손쉽게 해결할 수 있다는 것을 확인할 수 있었고, 이를 이용하여 실제 많은 기업들에게 적용하기 위한 POC를 수행하거나, 실제 적용하는 프로젝트를 수행하게 되었다.
본 발표 내용은 이러한 경험을 기반으로 기업(그리고 실제 업무를 수행할 Data Engineer) 관점에서 snowflake가 어떻게 문제를 해결할 수 있는지 cloud dw를 도입/활용/확장 하는 단계별로 문제와 해결 방안을 중심으로 설명하였다.
https://blog.naver.com/freepsw?Redirect=Update&logNo=222815591918
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)SANG WON PARK
2020년 데이터산업진흥원에서 발표한 자료를 일부 편집하여 공유함.
2020년 당시에 Data Platform에서 AI lifecycle를 효율적으로 지원하는 platform을 적극적으로 검토 및 설계하는 작업을 진행하였고, 이 때 검토 및 활용했던 기술들을 기업 관점에서 필요한 내용을 기준으로 정리하였다.
기업들은 전통적인 방식으로의 혁신에 한계를 체감하고 있으며, 최근 AI기반으로 성공적인 혁신(비즈니스 강화, 새로운 비즈니스로 전환 등)에 성공한 기업들을 빠르게 벤치마크 하고 있다.
이렇게 AI 기반으로 기업을 혁신하는 것은 고도화된 AI 모델의 도입으로 해결되지 않으며, 수많은 기술들의 최적화된 조합 및 활용이 필요하다.
이 자료에서는 그 중 AI모델에 핵심적인 데이터를 적시에, 고품질의 형태로, 빠르고 안정적으로 제공할 수 기술 트렌드를 소개한다.
전체 내용은
- AI기반 혁신이란?
- 혁신을 위해서는 어떤 점이 어려운가?
- 고품질 데이터 확보 기술
- 빠르게 AI 모델을 학습하는 기술
- 적시에 다양한 AI 모델을 비즈니스에 적용하는 기술
2020년 기준으로 작성된 자료라, 일부 기술 트렌드가 반영되지 않을 수 있으나 아직까지 많은 기업들이 고민하고 해결하고자 하는 영역이라 참고할 수 있을 것 같다.
이 내용을 기준으로 발표한 영상 링크 : https://www.youtube.com/watch?v=OVm4-uk59ZA
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
몇년 전부터 Data Architecture의 변화가 빠르게 진행되고 있고,
그 중 Cloud DW는 기존 Data Lake(Hadoop 기반)의 한계(성능, 비용, 운영 등)에 대한 대안으로 주목받으며,
많은 기업들이 이미 도입했거나, 도입을 검토하고 있다.
본 자료는 이러한 Cloud DW에 대해서 개념적으로 이해하고,
시장에 존재하는 다양한 Cloud DW 중에서 기업의 환경에 맞는 제품이 어떤 것인지 성능/비용 관점으로 비교했다.
- 왜기업들은 CloudDW에주목하는가?
- 시장에는어떤 제품들이 있는가?
- 우리Biz환경에서는 어떤 제품을 도입해야 하는가?
- CloudDW솔루션의 성능은?
- 기존DataLake(EMR)대비 성능은?
- 유사CloudDW(snowflake vs redshift) 대비성능은?
앞으로도 Data를 둘러싼 시장은 Cloud DW를 기반으로 ELT, Mata Mesh, Reverse ETL등 새로운 생테계가 급속하게 발전할 것이고,
이를 위한 데이터 엔지니어/데이터 아키텍트 관점의 기술적 검토와 고민이 필요할 것 같다.
https://blog.naver.com/freepsw/222654809552
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
Understanding of Apache kafka metrics for monitoring SANG WON PARK
2019 kafka conference seould에서 발표한 "Apache Kafka 모니터링을 위한 Metrics 이해" 슬라이드 자료
기존 2018년 자료에서 모니터링 관점에서 중요한 metrcis를 중심으로 정리하였고, 2019년 기준으로 추가/변경된 metrics를 반영하였다.
주용 내용은
- 업무에 최적화된 apache kafka 모니터링을 하려면?
- 어떤 정보를 모니터링 해야 할까?
- 적시성 관점의 모니터링 지표 (TotalTimeMs에 대한 세부 구조 이해)
- 안정성 관점의 모니터링 지표 (데이터 유실이 없이 중단없는 서비스)
- 언제 apache kafka 클러스터를 확장해야 할까? (어떤 지표를 봐야 할까?)
위 모든 지표는 producer/broker/consumer 3가지 측면에서 검토하였다.
컨퍼런스 영상 링크 : https://www.youtube.com/watch?v=p2RGsTOCHAg
Apache kafka performance(latency)_benchmark_v0.3SANG WON PARK
Apache Kafka를 이용하여 이미지 데이터를 얼마나 빠르게(with low latency) 전달 가능한지 성능 테스트.
최종 목적은 AI(ML/DL) 모델의 입력으로 대량의 실시간 영상/이미지 데이터를 전달하는 메세지 큐로 사용하기 위하여, Drone/제조공정 등의 장비에서 전송된 이미지를 얼마나 빨리 AI Model로 전달 할 수 있는지 확인하기 위함.
그래서 Kafka에서 이미지를 전송하는 간단한 테스트를 진행하였고,
이 과정에서 latency를 얼마나 줄여주는지를 확인해 보았다.(HTTP 프로토콜/Socket과 비교하여)
[현재 까지 결론]
- Apache Kafka는 대량의 요청 처리를 위한 throughtput에 최적화 된 솔루션임.
- 현재는 producer의 몇가지 옵션만 조정하여 테스트한 결과이므로,
- 잠정적인 결과이지만, kafka의 latency를 향상을 위해서는 많은 시도가 필요할 것 같음.
- 즉, 단일 요청의 latency는 확실히 느리지만,
- 대량의 처리를 기준으로 평균 latency를 비교하면 평균적인 latency는 많이 낮아짐.
Test Code : https://github.com/freepsw/kafka-latency-test
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
Apache Kafak의 빅데이터 아키텍처에서 역할이 점차 커지고, 중요한 비중을 차지하게 되면서, 성능에 대한 고민도 늘어나고 있다.
다양한 프로젝트를 진행하면서 Apache Kafka를 모니터링 하기 위해 필요한 Metrics들을 이해하고, 이를 최적화 하기 위한 Configruation 설정을 정리해 보았다.
[Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안]
Apache Kafka 성능 모니터링에 필요한 metrics에 대해 이해하고, 4가지 관점(처리량, 지연, Durability, 가용성)에서 성능을 최적화 하는 방안을 정리함. Kafka를 구성하는 3개 모듈(Producer, Broker, Consumer)별로 성능 최적화를 위한 …
[Apache Kafka 모니터링을 위한 Metrics 이해]
Apache Kafka의 상태를 모니터링 하기 위해서는 4개(System(OS), Producer, Broker, Consumer)에서 발생하는 metrics들을 살펴봐야 한다.
이번 글에서는 JVM에서 제공하는 JMX metrics를 중심으로 producer/broker/consumer의 지표를 정리하였다.
모든 지표를 정리하진 않았고, 내 관점에서 유의미한 지표들을 중심으로 이해한 내용임
[Apache Kafka 성능 Configuration 최적화]
성능목표를 4개로 구분(Throughtput, Latency, Durability, Avalibility)하고, 각 목표에 따라 어떤 Kafka configuration의 조정을 어떻게 해야하는지 정리하였다.
튜닝한 파라미터를 적용한 후, 성능테스트를 수행하면서 추출된 Metrics를 모니터링하여 현재 업무에 최적화 되도록 최적화를 수행하는 것이 필요하다.
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
Apache Kafak의 성능이 특정환경(데이터 유실일 발생하지 않고, 데이터 전송순서를 반드시 보장)에서 어느정도 제공하는지 확인하기 위한 테스트 결과 공유
데이터 전송순서를 보장하기 위해서는 Apache Kafka cluster로 partition을 분산할 수 없게되므로, 성능향상을 위한 장점을 사용하지 못하게 된다.
이번 테스트에서는 Apache Kafka의 단위 성능, 즉 partition 1개에 대한 성능만을 측정하게 된다.
향후, partition을 증가할 경우 본 테스트의 1개 partition 단위 성능을 기준으로 예측이 가능할 것 같다.
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
코드로 이해하는 Back_propagation(cs231n)SANG WON PARK
여러 샘플들을 참고하다 보니, tensorflow를 사용하지 않는 경우에는 직접 gradient를 계산하여 back propagation을 하도록 구현한 코드가 많다. 내가 직접 구현할 필요는 없더라도, 좀 더 명확하게 이해할 필요는 있을 것 같아서 cn231n note에서 제공하는 코드와 설명을 정리.
http://blog.naver.com/freepsw/220928184473
http://cs231n.github.io/neural-networks-case-study/ 참고
데이터를 작게 생성하여, 직접 코드와 생성된 데이터를 확인하면서 좀 더 직관적으로 이해하는 과정으로 정리하다보니, 코드보다 설명이 더 많다... 아직도 명확하지는 않지만 나름대로 정리는 되었다.
2. 2
Week 1. Overview
다른 ML과정과의 차별점으로 실제 문제를 해결하는 방식으로 접근함
과정의 수준 과정의 대상자
• 데이터를 이해하고자 하는 개발자
• 데이터 사이언티스트가 되고 싶어하는 엔지니어
• 수학을 조금 알면서 데이터를 분석하고 싶어하는 사람들
• 이해를 위해 미리 알아야 할 정보는 최소화 하고,
• 문제를 해결하는 방법에 대한 내용을 최대화
• 데이터를 이해하고자 하는 개발자
• 데이터 사이언티스트가 되고 싶어하는 엔지니어
• 수학을 조금 알면서 데이터를 분석하고 싶어하는 사람들
3. 3
Week 1. Development Environment
Python, IPython Notebook & GraphLab Create
설치 가이드 설치 절차
• 데이터를 이해하고자 하는 개발자
• 데이터 사이언티스트가 되고 싶어하는 엔지니어
• 수학을 조금 알면서 데이터를 분석하고 싶어하는 사람들
• Anaconda 4.0.0 설치 및 가상환경을 이용한 환경 구성
• Python
• Jupyter
• Sframe
• GraphLab Create
• GraphLab Create(상용제품, trial)을 사용하는 이유
• 문제해결에 좀 더 많은 시간을 할당하기 위함.
• SW에서 제공하는 기능을 가능한 활용
https://turi.com/download/install-graphlab-create.html?email=freepsw%40gmail.com&key=2F8A-2D9E-43DE-3AC0-3312-B6EA-79CE-1BF5
• 데이터를 이해하고자 하는 개발자
• 데이터 사이언티스트가 되고 싶어하는 엔지니어
• 수학을 조금 알면서 데이터를 분석하고 싶어하는 사람들
https://www.coursera.org/learn/ml-foundations/supplement/5HQGl/reading-getting-started-with-python-ipython-notebook-graphlab-create
# 1. 필요 라이브러리 설치
> sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite3 sqlite-devel openssl-devel –y
> sudo yum install freetype freetype-devel libpng-devel -y
# 2. Anaconda 설치
> wget https://repo.continuum.io/archive/Anaconda2-4.0.0-Linux-x86_64.sh
> bash Anaconda2-4.0.0-Linux-x86_64.sh
à $PATH에 anaconda에서 제공하는 python 경로가 포함되도록 설정
à ~/.bash_profile에 ” export PATH=$HOME/anaconda2/bin:$PATH ”
# 3. Anaconda 가상환경 구성
> conda create -n gl-env python=2.7 anaconda=4.0.0
# 4. Activate the conda environment
> source activate gl-env
# 5. Install your licensed copy of GraphLab Create
> pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-
Create/2.1/freepsw@gmail.com/2F8A-2D9E-43DE-3AC0-3312-B6EA-79CE-1BF5/GraphLab-Create-License.tar.gz
à 코세라 강의를 위한 라이센스를 발급받고 이를 이용하여 설치 (https://turi.com/learn/coursera/)
# 6. Jupyter Notebook 실행 (.ipynb 파일이 있는 폴더에서 실행)
> conda install ipython-notebook
> Jupyter notebook
# 7. Browser로 접속 (http://서버IP:8888)
• 본인 Notebook/PC로 실행하면 문제없음.
• UI가 없는 Server를 활용할 경우, Juypter를 외부에서 접속할 수 있는 서버로 실행해야함.
• http://jupyter-notebook.readthedocs.io/en/latest/public_server.html#notebook-server-security
4. 4
Week1. Canvas for data visualization
GraphLab Create를 이용하여 시각화한 웹서버 접근방법 (sf.show() 실행시)
로컬 환경인 경우 원격서버 환경
• 원격서버(AWS, GCE, 개발서버 등)에 실습환경 구축한 경우
• [문제] Link 클릭시 접속 오류 발생
• [해결] SSH Port Forwarding을 통하여 접속
• 실습환경을 local PC에 설치한 경우 매뉴얼 대로 동작
# local PC에서 실행 (port forwarding 연결)
> ssh -L 37025:localhost:37025 rts@192.168.X.X (원격서버 ip)
• 출력된 link를 통해 graphlab creat 화면 접속
참고 : http://blog.naver.com/freepsw/220892098919
# local PC Browser
http://localhost:37025/index.html 접속
6. 6
Week 2-1. Linear regression modeling
주변 주택시세(크기 기준)를 이용하여 선형모델을 생성해 보자
• 가상의 선(W0, W1)을 그리고 예측값과 실제값의 차이(Residual
sum of square)를 계산.
• 이 값이 최소가 되는 선형을 선택하여 가격을 예측
• 집의 크기와 가격을 기준으로 그래프를 그리고,
• 집의 평수에 해당하는 가격을 대략 산정 가능
직관적인 분석을 통한 시세 예측 모델 Linear regression을 활용한 예측 모델
7. 7
Week 2-2. Evaluating regression model
Feature를 추가하여 모델의 예측 정확도를 높인다
• 수강생의 역량
• Capstone 프로젝트 결과물 등
• 2차원에서는 단순한 선형을 가지지만,
• Feature가 추가되면서 고차원의 선형으로 데이터를 분류함.
Feature 추가에 따른 선형의 변화 (고차원) 수강생들이 회사에 취직할 확률
8. 8
Week 2. Assignment
Graphlab을 이용하여 탐색적 분석 및 regression model 평가
• Graphlaba에서 제공하는 api를 이용한 모델생성• Feature와 price간의 관계를 다양한 chart를 이용하여 시각화
Graphlab create를 이용한 시각화 Regression model 생성
• 생성된 모델에 대한 평가
10. 10
Week 3-1. Classification modeling
음식(메뉴)에 대한 평가(긍정,부정)를 분류하는 서비스
• 1) 모든 평가 댓글을 취합
• 2) 특정 메뉴가 포함된 문장만 추출
• 3) 감성분석을 위한 분류기 적용
• 4) 메뉴별 평가정보 추출
• 고갱의 댓글 또는 평가에 대한 문장을 분석하여,
• 특정 메뉴에 대한 긍정/부정의 감성분석을 하고,
• 어떤 메뉴가 가장 큰 긍정적인 평가를 받는지 확인
개념적인 모델 상세 모델
Classifier의 성능(예측정확도) 중요
11. 11
Week 3-1. Simple Threshold Classifier
긍정/부정의 단어에 일정한 점수를 부여하여 분류하는 모델
• 긍정/부정의 단어를 직접 구성해야 함. (모두 파악할 수 있나?)
• 단어별로 긍정/부정의 강도가 다름 (Greate > good)
• 단어별로 가중치가 필요하지 않을까?
• 긍정/부정의 단어를 사전에 정의함.
• 입력된 문장에 포함된 단어를 집계하여 score의 합을 계산
모델의 구성 Threshold classifier의 문제점
• 하나의 단어로 긍정/부정을 평가하기 어려움
• Good à 긍정
• Not Good à 부정
Classifier를 학습
(후반부에 자세히 설명)
좀 더 복잡한 feature를 이용
12. 12
Week 3-1. Linear Classifier
단어별로 가중치를 부여하여, 긍정/부정의 score로 분류
• 아래 문장에서 긍정을 표현하는 단어의 가중치가 높아서
• 긍정으로 분류함
• 가중치가 부여된 단어의 score 합계를 이용하여
• 긍정/부정을 분류함
모델의 구성 문장의 Scoring
14. 14
Week 3-2. Training and evaluating a classifier
Classifier를 학습한다는 것은, Error를 최소화 하는 최적의 weight를 찾는것이다
• Training set를 이용하여 최적의 weight를 학습하고,
• Test set를 이용하여 정확도를 검증한다.
• 아래와 같이 가중치가 부여된 경우
• linear regression의 함수를 생성할 수 있다.
Decision boundary 결정 최적의 weight 탐색 과정
• 위 함수를 이용하여 긍정/부정을 분류 가능
awesome 2회
awful 1회
15. 15
Week 3-2. False positives, false negatives
학습된 모델이 예측을 실패하는 유형 이해
• [Spam Filtering]
• FP : 정상 메일을 spam으로 판단하면, 중요한 메일을 읽지
못함.
• [병/질환 진단]
• FN : 실제 병이 있는데, 없는 것으로 판단 à 치료시기 놓침
• FP : 병이 없는데 있다고 판단 à 불필요한 치료비용/독한 약
• False Negative : 부정(Negative)으로 예측한 것이 틀렸다(False)
• False Positive : 긍정(Positive)으로 예측한 것이 틀렸다(False)
모델의 예측 실패 유형 예측 실패의 영향
16. 16
Week 3-2. Learning curves
데이터가 많을 수록 예측 오류는 줄어들지만, 특정 bias(편향) 이하로는 줄지 않음
• 단순한 단어가 아닌 복합 단어를 포함한 파라미터를 추가• 데이터가 많을 수록, 모델의 정확도가 높아짐 (오류가 감소)
데이터와 예측오류의 관계 복잡한 모델은 bias 감소
데이터가 무한대로 증가해도, 오류가 감소하지 않음
• 기존 모델과 비교하여 오류가 현저하게 감소함
17. 17
Week 3-2. Class probabilities
모델의 예측 정확도를 신뢰할 수 있도록 확률로 표현한다
• 입련 문장에서 긍정/부정이 나타날 확률로 계산• 단어를 보고 긍정 or 부정 판단
• 하지만, 실제 문장에는 긍정과 부정이 함께 표현되는 경우가 많음
• Sushi는 맛있지만, 서비스는 별로?
기존 모델의 예측 방식 확률을 통한 예측
• 따라서,
• 이를 특정 문장이 주어졌을때,
• 긍정이 나타날 확률과
• 부정이 나타날 확률로 구분해야 한다
19. 19
Week 4-1. Algorithms for retrieval and measuring similarity of documents
수많은 문서들간의 유사도를 비교하는 방법
• 입련 문장에서 긍정/부정이 나타날 확률로 계산• 단어의 순서는 무시하고,
• 단어가 얼마만큼 나타났는지의 빈도로 유사도를 계산
Bag of Words model (단어 주머니) Word Count 유사도 계산 방식
20. 20
Week 4-1. Prioritizing important words with tf-idf
희소단어들은 기사의 주제를 잘 표현하므로, 가중치를 높여야 한다
• 상용어인 “The”의 비중을 줄이고,
• “Messi”와 같은 의미있는 단어의 가중치를 높임.
• 일부 문서에서만 나타나는 희소단어의 가중치를 높이기 위해서,
• 많이 발생하는 단어의 가중치를 감소시킨다.
• IDF
• Log(전체 문서 수 / 단어가 포함된 문서)
• Log 함수로 아주 큰 수가 나오지 않도록 조정
• 발생빈도 높은 단어 à 0에 가까움.
• 발생빈도 낮은 단어 à 0보다 크지만, 아주 크지는 않음
TF-IDF (Term Frequency – Inverse Document Frequency) TF-IDF 예시
+1을 하는 이유?
문서의 단어 중 말뭉치에 없는 단어가 있을 수 있으므로,
0이 되지 않도록 1을 추가
log0 16 = 4
(여기서는 log0로 가정)
• 최종적으로, Messi라는 단어의 가중치가 20으로 증가되고
• The라는 단어는 0으로 감소
21. 21
Week 4-1. Retrieving similar documents using nearest neighbor 검색
문서간의 유사도를 비교하는 가장 보편적인 기법
• Input : Query article
• Output : 가장 유사한 기사 (1개만 출력)
• Algorithm :
1. Corpus의 모든 article을 검색하면서
2. 유사도(Query article vs article) 비교
3. 전체 중에 가장 유사도가 높은 것만 출력
• 일부 문서에서만 나타나는 희소단어의 가중치를 높이기 위해서,
• Query article : 검색기사 (현재 보고 있는 기사)
• Corpus(말뭉치) : 모든 문서의 총합, 여기서 추천할 기사를 선택
nearest neighbor search 개념 1 - Nearest neighbor
• 거리 기준 : 유사도를 측정할 기준 (distance metric)
• Input : Query article
• Output : 유사한 기사의 목록 (List of K)
K – Nearest neighbor
23. 23
Week 4-2. Clustering documents task overview
라벨이 없는 article들에서 관련된 기사 및 그룹을 발견하는 방식
• 3개의 클러스터로 지정 후
• 랜덤 중심점 3개로 시작하여, 반복하여 중심점을 조정하면서
• 클러스터를 최적화 하는 기법
• 단어의 빈도를 이용하여 기사(문서)를 자동으로 분류하는 방식
• Input : 문서 (vector형식)
• Output : Cluster Label (문서별로 label을 부여, 스포츠/정치 등)
Clustering 개념 거리 중심의 클러스터링 (K-Means)
• 문서에 포함된 단어가 2개(word1, word2)만 존재하는 경우,
• 위와 같이 2차원 평면으로 표현가능 (실제는 더 많은 고차원)
• 가장 가까운 거리의 문서 집합을 클러스터로 분류하여 라벨링
24. 24
Week 4. Assignment
Wiki의 인물사전의 설명을 기준으로 각 인물간의 유사도를 분류
• TF-IDF 필드를 이용한 유사도 모델 생성 및 평가• Word_Count : ”Text” 필드의 단어 발생 빈도
• TF-IDF : 각 단어가 문서들(Corpus)에 발생한 빈도
Word를 이용한 단어 빈도 계산 거리기반 유사도 모델
• Elton John과 가장 유사
한 사람은 “Phill Collins”
26. 26
Week 5-1. Recommender systems
라벨이 없는 article들에서 관련된 기사 및 그룹을 발견하는 방식
1. 인기도 기반 (Popularity)
• 가장 단순 (뉴스에서 활용, 가장 인기 있는 기사 추천)
• 독자에게 공유된 횟수
• 문제
• 개인화(개인별 선호도)에 대한 고려 없음
2. Classification Model
• 개인별 feature로 모델 학습
• 장점
• 개인의 선호도 반영
• 문맥(시간, 활동내용 등)을 반영한 추천
• 개인의 이력을 반영한 추천
• 단점
• Feature가 부족할 수 있음 (나이, 성별 등..)
• à collaborative filtering으로 한계 극복
• 개인화 (Personalization)
• 사용자와 Item을 연결 (User vs Product/Movie …)
• 추천 시스템의 핵심 개념
• 시간에 따른 변화
• 작년에 구매한 유아 운동화를 몇년 후에는 구매하지 않음
• 시간에 따라 다른 추천
• Item의 유사성
• 음악 청취시 비슷한 음악을 연속적으로 듣는 경향
Recommender system의 특징 추천 모델의 유형
28. 28
Week 5-2. Collaborative Filtering
구매이력을 기반으로 특정 상품을 산 사람들은 다른 특정 상품을 살거라는 가정
• 특정 상품이 압도적으로 많이 구매되는 경우, (예를 들어 기저귀)
• 어떤 상품을 구매하더라도, 무조건 그 상품(기저귀)를 추천함
• Matrix C
• 사용자가 구매한 상품간의 대칭 Matrix
• 특정 상품을 구매한 사람이 어떤 상품을 동시에 구매했는지
쉽게 확인 가능
Co-Occurrence Matrix (상품 구매 매트릭스) Co-occurrence matrix의 문제점 (populiarity)
• 기저귀와 아기 물티슈를
동시에 구매한 사람 수
• 이 Matrix를 이용하면,
• 특정 상품을 구매한 사람이 구매한 다른 상품의 갯수(많이 구매)
순서로 추천할 수 있다.
• 기저귀를 먼저 추천 à
29. 29
Week 5-2. Normalizing co-occurrence matrix
Popularity를 기준으로 유사도를 가지도록 데이터를 정규화
• 구매 이력에 있는 각 상품에 대하여,
• 추천할 상품과의 점수를 구하고, (Co-occurrecne matrix 사용)
• 이를 평균으로 나누어서 가중 점수를 계산
• 내가 구매한 이력이 (diaper, milk)만 있고,
• 나머지 상품에 대한 추천점수를 계산해야 한다면,
• Diaper와 milk와 다른 상품간의 점수를 각각 계산하고,
• 이를 평균으로 계산
• 상품 i와 j를 동시에 구매한 사람의 수를
• 상품 I 또는 j를 구매한 전체 사용자 수로 나누어 유사도를 구한다.
• 이 공식을 이용해 전체 Matrix를 정규화
Jaccard similarity Weighted Average of purchased items
[ Co-occurrence Matrix의 문제점]
• 현재 상태(특정 상품]만 추천이 가능
• 즉, 과거의 구매이력을 이용하여 추천하지 못함.
• 왜냐하면, matrix에서 전체 이력을 계산한 값이 없기 때문…
• 이 점수가 가장 높은 순으로 추천한다
• Baby wipes 추천 점수
• (가중 평균점수)
[ 한계점]
• 문맥(시간 등), 사용자 개인정보, 제품정보를 반영하지 못함.
• Cold Start Problem (신규 사용자 또는 신규제품은?)
30. 30
Week 5-3. Matrix Factorization
데이터를 통하여 사용자 또는 상품의 특징을 학습하는 방법 (행렬 분해)
(예를 들어, 영화 평점데이터를 통해 사용자 및 영화의 특징 추출)
• Feature : X1, X2 (영화의 특징)
• 가중치 : 𝜽(𝒖𝒔𝒆𝒓)
• 예측평점 : 𝒚 = 𝜽 𝒋 𝑻
(𝒙 𝒊
)
• 즉, 사용자가 영화를 평가했던 이력이 있고,
• 사용자 및 영화의 feature을 가지고 있다면,
• 여기서는 romance, action 등의 선호도
• 실제는 사용자(나이, 성별, 거주지역 등), 영화(감독, 배우, 장르 등)
• 이를 통해서 가중치를 학습하여 최적의 값을 찾는다. (cost 최적화)
• Feature(특징)이 정의되지 않은 경우, 이를 데이터를 통해 학습
• 먼저, 사용자(U)와 영화(V)의 feature matrix를 이용하여 점수
(rating)을 예측해 보자.
데이터를 통해 특징을 찾아서 분해(Matrix Factorization) Feature를 통해 학습하여 가중치 추출
• Andrew NG 강의
• Week 9 참고 (더 자세함)
• 학습을 통해 𝜽를 최소화
가중치를 통해서 Feature(유형)를 추출
• 가중치를 알면, 평가점수를 기반으로 feature를 추출 가능
• 즉, 사용자 및 영화의 feature를 추출
• 이를 통해 사용자의 유형을 분류할 수 있음
• 사용자 1(Allice)의 3번째 영화(Cute pupple of love)의 평점을 예측해 보자
• 이때 𝜽(𝟏)
은 사전에 학습되었다고 가정한다. [0, 5, 0]
34. 34
Week 6. Quiz
(x1 AND x2) OR (NOT x1 AND NOT x2) 문제를 NN으로 표현하는 방법
• 수식을 2개로 분리하고, 각 결과를 다시 계산
• 총 3단계의 가중치가 필요함
• Z1(w0, w1, w2), Z2(w0, w1, w2), Z3(w0, w1, w2)
• Z1 à -1.5, 1, 1
• Z2 à 0.5, -1, -1
• Z3 à -0.5, 1, 1
• (x1 AND x2) OR (NOT x1 AND NOT x2) 정의
• X1과 X2의 논리 연산 결과 확인
• 아래와 같이 (1 0 0 1)이 도출되어야 정답
문제 문제 풀이 방법
https://www.coursera.org/learn/ml-foundations/discussions/weeks/6/threads/AAIUurrtEeWGphLhfbPAyQ
• 정답을 찾기 위해서는 어떤 가중치(weight)가 주어져야 할까?
• Deep Learning에서는 Cost 최적화를 통하여
• 위의 가중치(w0, w1, w2)를 자동으로 찾아 줌