2021-07-15 읽을거리
python
1. 정규 표현식
정규 표현식에 대해서 예제와 다양한 상황에 대해 잘 서술해놓았다.
정규 표현식을 잘 모르는 사람들이 보면 좋을 글
https://dongwooklee96.github.io/post/2021/07/14/정규표현식.html
정규표현식 | 개발자 이동욱
기본적인 정규 표현식 문법을 익히고 나서, 나중에 사용하거나 이와 관련된 코드를 볼 일이 있을 때 기억이 나도록 하자. 정규 표현 (Regular Expression) 정규 표현식은 일련의 문자열 패턴을 정형화
dongwooklee96.github.io
2. walrus 연산자
바다코끼리 연산자라고도 불리는 해당 연산자는 반복문, 조건문 조건 내에서 변수를 지정할 수 있게하는 연산자이다.
사용 시 매우 편리하겠지만 python 3.8 이후에 적용된 연산자로써 사용 버전에 유의하고 사용하길 바란다.
https://int-i.github.io/python/2020-05-29/python-walrus-operator/
Python 3.8 기여운 바다코끼리를 드리겟슴미다 := - 인하대학교 인트아이
파이썬 문법을 읽다, ‘바다코끼리 연산자’라고 불리는 기능을 발견했다. 찾아보니 2019년 10월에 정식 릴리즈된 파이썬 3.8에서 들어왔다고 하는데, 찾아보느라 이것저것 ...
int-i.github.io
3. deque
파이썬에 내장되어 있는 collections 라이브러리 안에 있는 deque 이다.
해당 글에서는 list 대신 deque를 쓰라고 소개가 되어있는데 겹치는 기능도 있지만 배타적인 기능도 있어서 서로 별개의 함수이지만,
deque로 대체할 수 있다면 속도 면에서 list 대신에 쓰는 것을 추천하고 있다.
Stop Using Python Lists Everywhere — Consider Using Deques Instead
Know when to use deques as an alternative to Python lists
betterprogramming.pub
4. python에서 asterisk(별표)를 사용하는 5가지 방법
python에서 별표를 사용하는 위치마다 곱하기, 제곱, unpicking 등 문법이 다 달라진다.
해당 글은 이 별표들에 대한 문법들을 설명하고 있다.
https://medium.com/techtofreedom/5-uses-of-asterisks-in-python-3007911c198f
5 Uses of Asterisks in Python
The powerful weapon for writing more elegant code
medium.com
5. closure 이해를 돕기 위한 5가지 단계
이전에 7월 12일 python 8번 글에서 closure를 잘쓰는 법에 대해서 공유하였다.
지금 공유하는 해당 글은 closure에 대한 기초와 어떻게 사용하는지를 단계 별로 설명하기 때문에
closure를 잘 모르는 사람들에게 추천
https://medium.com/techtofreedom/5-levels-of-understanding-closures-in-python-a0e1212baf6d
5 Levels of Understanding Closures in Python
From phenomenon to essence
medium.com
ML / DL
1. pandas의 groupby, aggregate 함수
pandas에서 데이터를 그룹 별로 묶어서 통계적으로 볼 수 있는 groupby와 aggregate 함수 둘 다 써서
데이터를 분석하고 이를 시각화 하는 예제이다.
Visualize Charts Using Groupby and Aggregate Python Functions
Let’s make attractive graphs
betterprogramming.pub
2. matplotlib를 사용하지 않고 시각화하는 방법
해당 글은 matplotlib 라이브러리를 사용하지 않고 pandas의 내장 함수를 사용해서 시각화하는 방법을 예제로 작성하였다.
pandas의 default backend는 matplotlib지만,
이전에 7월 4일 공유한 글에서 pandas backend를 plotly로 변경하는 방법에 대해 7월 4일 UI / UX 4번 링크가 있어서
다른 차트 디자인을 사용해보고 싶으면 해당 링크를 같이 봐보는 것을 추천
The Simplest Way to Create Complex Visualizations in Python Isn’t With matplotlib.
Creating Sleek & Easy Plots Directly From Pandas
medium.com
3. 캐글에서 사용하는 다양한 예제들
해당 글은 캐글에서 많이 사용되는 방법들에 대해 공유하고 있다.
대부분의 예제는 데이터들에 대한 시각화들과 pandas의 옵션을 다루는 것들에 초점이 맞춰져있다.
https://towardsdev.com/tricks-and-best-practices-from-kaggle-794a5914480f
Weekly Awesome Tricks And Best Practices From Kaggle
Easily learn what is only learned by hours of search and exploration
towardsdev.com
4. jupyterlab에서 사용되는 extension들
이전에도 jupyter 관련 extension들을 소개하는 링크를 공유하였지만,
해당 글은 jupyter 자체를 다루는 편리함에 초점이 맞춰져 있다.
그래서 jupyterlab을 편하게 사용하고 싶다면 보는 것을 추천
https://jlgjosue.medium.com/best-extensions-for-jupyterlab-185ab5f3e05c
Best extensions for JupyterLab!!
Boost your JupyterLab with these tips!
jlgjosue.medium.com
5. pytorchdml mobile용 데모 앱
해당 링크는 공식 pytorch 사이트에 나와 있는 모바일 용 데모 앱이다.
image, NLP, autio 등 다양한 도메인에 관련한 모델들을 안드로이드, ios 앱 각각에 올릴 수 있는 데모 앱과 코드를 공유한다.
https://pytorch.org/blog/mobile-demo-apps-overview/
An Overview of the PyTorch Mobile Demo Apps
PyTorch Mobile provides a runtime environment to execute state-of-the-art machine learning models on mobile devices. Latency is reduced, privacy preserved, and models can run on mobile devices anytime, anywhere.
pytorch.org
6. pytorch 1.9 release
pytorch 1.9 버전이 6월 15일에 stable 버전으로 나왔다.
주요 기능으로는 linear algebra 모듈 추가, 복잡한 autograd 기능, deterministic 알고리즘 추가이다.
또한, 모바일용 데모 앱에서 새로운 video 앱과 추가적인 모델들도 같이 배포되었다.
https://pytorch.org/blog/pytorch-1.9-released/
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
7. Data infrastructure 로드맵
해당 글은 데이터를 수집, 변형, 분석, 결과물 등 각 단계 별로 설명을 하면서 각 단계 별로 사용할 수 있는 툴들을 소개하고 있다.
데이터를 수집하여 내부적으로 활용하는 시스템을 구축하려면 해당 글을 읽고 필요한 툴들을 취사 선택하면 좋을 것 같다.
Roadmap: Data Infrastructure
By Ethan Kurzweil, Hansae Catlett, Sakib Dadi, Alexandra Sukin 6.28.21 Developer The success of a modern business, from small-to-medium companies to Fortune 500 enterprises, is increasingly tied to the ability to glean valuable insights or to drive superio
www.bvp.com
8. big data processing 프레임워크 : tuplex 프레임워크
tuplex 프레임워크는 big data를 병렬 처리하여 빠르게 처리할 수 있는 프레임워크이다.
기존에 소개한 pandas를 대체하는 dask나 vaex 라이브러리보다 더 low-level 에서 작동하는 것으로 보인다.
https://tuplex.cs.brown.edu/index.html
Tuplex: Data Science in Python at Native Code Speed
Easy to Use Tuplex makes wrangling data easy: it works interactively in the Python toplevel, integrates with Jupyter Notebooks, and provides familiar APIs, all backed by its data-driven compiler. Tuplex jobs never crash on malformed inputs because Tuplex's
tuplex.cs.brown.edu
UI / UX
1. interactive visualization 라이브러리 : pygal 라이브러리
그래프를 그리는 시각화 라이브러리를 소개한 종류만 해도 이미 4~5가지는 된 것 같다.
그 리스트 중 하나를 더 추가하자면 이 pygal로써, 특이하게 바로 시각화를 하는 것이 아니라 html로 렌더링하여 interactive하게 표현하는 것이 특징이다.
https://towardsdatascience.com/interactive-data-visualization-in-python-with-pygal-4696fccc8c96
Interactive Data Visualization In Python with Pygal
A Step by Step Tutorial To Create Stunning Visualizations
towardsdatascience.com
2. Genomic data visualization : ipyigv 라이브러리
해당 글은 게놈 데이터를 시각화하는 ipyvigv 라는 라이브러리에 대해서 소개하고 있다.
기본적으로 jupyter 상에서 사용한다.
게놈 데이터 자체가 워낙 특수한 도메인인지라 왠만한 일반 데이터 사이언티스트들은 사용하지 않을 것 같다.
https://blog.jupyter.org/genomic-data-representation-in-jupyter-c57a5bb518d6
Genomic data representation in Jupyter
If there is one thing that recent events tell us, it is that genomic is a large source of data, and that its manipulation and…
blog.jupyter.org
논문
1. WaveNet
WaveNet은 DeepMind에서 낸 2016년에 낸 TTS 논문이다. 해당 논문이 TTS 논문 중 기본적인 논문으로 보이며, 이후에 Tacotron, WaveGAN, WaveRNN 등 다양한 논문이 나왔고, 가장 최근에는 VocGAN, TransformerTTS 등이 나왔다.
이 중, 시기 상으로 가장 빨리 나온 WaveNet을 공유한다.
(Transformer는 NLP를 벗어나서 이제 이미지, TTS 등 다양한 분야에서 적용되려고 하는 것으로 보인다.)
https://deepmind.com/research/case-studies/wavenet
WaveNet
We research and build safe AI systems that learn how to solve problems and advance scientific discovery for all. Explore our work: deepmind.com/research
deepmind.com
https://joungheekim.github.io/2020/09/17/paper-review/
[논문리뷰]WaveNet - 새내기 코드 여행
[논문리뷰] - WaveNet : A Generative Model for Raw Audio, DeepMind
joungheekim.github.io
2. federated learning (연합 학습) 시스템 프레임워크 : Flower 프레임워크
해당 글을 보면서 연합 학습이라는 개념을 처음 알게 되었다.
분산 학습과는 또 다른 개념이라고 하는데 가장 큰 차이는 분산 학습과 다르게 데이터가 각각의 로컬에 존재하는 것으로 보인다.
그래서 연합 학습 개념을 정리한 글과, 연합 학습 시스템을 프레임워크로 만들어 사용할 수 있게 하는 flower 링크를 같이 공유한다.
https://medium.com/curg/연합-학습-federated-learning-그리고-챌린지-b5c481bd94b7
연합 학습(Federated Learning), 그리고 챌린지
연합 학습(FL: Federated Learning)은 다수의 로컬 클라이언트와 하나의 중앙 서버가 협력하여 데이터가 탈중앙화된 상황에서 글로벌 모델을 학습하는 기술이다. 여기서 로컬 클라이언트는 사물 인터
medium.com
https://github.com/adap/flower
adap/flower
Flower - A Friendly Federated Learning Framework. Contribute to adap/flower development by creating an account on GitHub.
github.com
3. 대화에 잡담을 섞기 : ACCENTOR
페이스북 리서치에서 대화에 잡담을 섞어서 인공지능이 더 사회적이고 호감이 가도록 설계한 논문이다.
해당 논문에서는 데이터셋부터 이를 기반으로 학습한 3가지 모델에 대해서 얘기하고 있다.
챗봇 관련한 모델이라 기초부터 파봐야 할 필요성을 느낀다.
https://github.com/facebookresearch/accentor
facebookresearch/accentor
Data & Code for ACCENTOR: "Adding Chit-Chat to Enhance Task-Oriented Dialogues" (NAACL 2021) - facebookresearch/accentor
github.com
4. optimizer 밴치마킹
딥 러닝 분야가 커짐에 따라서, 논문에서 쓰이는 optimizer들도 수백 개가 쓰이고 있다.
해당 논문은 그 중 많이 쓰이는 optimizer들에 대해서 다양한 데이터셋, 튜닝, 스케줄러들에 대입하여 비교한다.
어떤 optimizer가 있고, 무엇이 더 좋은지 다양한 경우에 대해서 알 수 있다.
https://arxiv.org/abs/2007.01547
Descending through a Crowded Valley -- Benchmarking Deep Learning Optimizers
Choosing the optimizer is considered to be among the most crucial design decisions in deep learning, and it is not an easy one. The growing literature now lists hundreds of optimization methods. In the absence of clear theoretical guidance and conclusive e
arxiv.org