티스토리 뷰
1. 모두를 위한 안드로이드 새 소식 - 양찬석 (구글 코리아)
1-1) Storage
- Android Q 이전 : 내부 저장소(개별 앱만 접근 가능) / 외부저장소(권한이 있으면 누구나 접근 가능)
- Android Q : 잘 알려진 콘텐츠를 위한 공용 저장 공간(Audio, Video, Image), 외부 저장소 권한으로 다른 앱이 생성한 파일 접근 가능, 다운로드 접근 공간(사용자가 명시적으로 선택한 경우에만 사용 가능)
- Scoped mode : 원활한 마이그레이션을 위해, Scoped mode 적용여부를 선택할 수 있는 플래그를 제공 (requestLegacyExternalStorage), 다른 플랫폼 버전(R)에서 모든 앱에 적용 예정(1년간의 유예기간)
1-2) Location
- 앱을 사용(foreground)중일때만 권한 체크함, 백그라운드에서 위치 정보가 필요한 경우에는 Q 대응을 해야 함 (사용자 마음대로 수집되지 않을 수 있음)
- Location Permissions Reminder : 어떤 앱이 백그라운드에서 위치 요청을 하는 순간 노티피케이션으로 알려줌, 사용자가 권한 설정을 변경할 수 있음
1-3) Device ID
- READ_PRIVILEGED_PHONE_STATE 권한 설정하면 사용 가능하지만, 선탑재된 앱만 가능하므로 일반 앱에서는 불가능한 권한이라고 보면 됨
- 광고ID, Android ID는 사용 가능
1-4) 백그라운드 액티비티 실행 금지
- 다른 백그라운드 서비스에서 임의로 띄우는 시나리오 불가, 가능하면 Notification으로 대체하는 것을 권장함(setFullScreenIntent)
1-5) System UIs
- Dark Theme : Quick panel setting/System setting에서 사용자 설정 가능
- Force Dark : Automatically convert app to dark theme
- WebView 지원 : ‘prefers-color-scheme’ CSS media query
1-6) System Gesture Insets
- System Insets의 UI 부분이 의도대로 동작하지 않을 수 있으니 주의 필요, Overriding getures로 해당 영역을 커스텀 동작하도록 수정 가능
1-7) Gentle Notifications
- 소리, 진동이 나지 않음 (개발자가 초기화하고, 사용자가 임의로 조정할 수 있음)
1-8) Platform
- How ART works? : Interpreter + JIT + AOT, 안드로이드 앱은 최초로 실행할 때가 가장 느림
- No more Zygote : Q부터는 사용 안함, Process Pool에서 실행
1-9) Android Jetpack
- CameraX : Preview, Capture, Image analysis (LifecycleOwner에서 사용 가능)
- Security : 암호화된 파일을 쉽게 사용할 수 있게 한 보안 라이브러리, 암호화된 Shared Preferences 제공
1-10) Future : App bundle + dynamic delivery
2. Flutter를 소개합니다! - 김석용 (RootOne)
2-1) React Native : JS <-> JS Bridge <-> Native Platform
2-2) Flutter : Dart, Skia(Render), iOS/Android/Web/Desktop 지원(Flutter everywhere)
2-3) 개발 : Hot reload, Widget(StatelessWidget/ StatefulWidget), iOS는 Cupertino, Android는 Material로 각각 그려줘야 자연스러운 look & feel 가능, pod spec.yml (프로젝트 구조 존재), https://pub.dev/ (like npm)
2-4) Tips : 복잡한 뷰를 그릴수록 따로 모듈화를 자주 해야 한다! (중첩되는 뷰 트리 구조..)
2-5) Dart : Widget.build(..), setState(..), Scaffold(Material Design을 그리는 상위 껍데기), Async/Await(비동기, JS와 유사)
2-6) StatefulWidget Lifecycle
- createState() : StatefulWidget를 빌드하게 되면 createState()를 호출
- initState() : onCreate(Android) / viewDidLoad(iOS)
- setState() : 해당 데이터 변경 알림
- dispose() : StatefulWidgetd이 제거될 때
2-7) 결론 : Fast Dev, Expressive UI, Native Performance
3. Machine Learning in Google I/O 2019 - 신정규 (Labub.Inc)
3-1) 총론 : Google은 “웹”을 통해 “정보”를 제공하는 회사 -> 머신러닝은 ‘고급화’ 역할
3-2) 응용폭의 확대
- Coral : Edge TPU 기반의 하드웨어군, Mendel OS, TF Lite 모델 변환 컴파일러(ops 제약이 큼), Python SDK
- TF Lite : 엣지 디바이스를 목표로 한 TF, GPU/NPU 지원, TF 1.0/TF.js와의 모델 호환성 유지
- TF.js + PWA : node.js 기반의 서버사이드 트레이닝 지원 (GPU 지원 안 함), prebuilt 모델/TF Hub(AI Hub) 지원
- Swift for TF : 컴파일러 단계에서의 새로운 접근, Full-Stack(C++ + Python + TF Lite)을 Swift로 작성 중, 미래(?)
- TF 2.0 : Keras 문법 적용, Eager Execution 지원(세션 구조는 퇴출), 기존 코드는 tf.compat.v1로 옮겨 감
- TF-Agents : 강화학습 지원을 위한 TF 라이브러리, pybullet과의 통합, Jupyter Notebook 예제 제공, Unity 지원
- 공정한 머신러닝 (ML Fairness) : 데이터의 편중으로 인한 문제 (자율주행, 이미지 인식, 대화형 모델 개발 등) -> 투명성 프레임워크 (Transparency F/W)
3-3) 정보 보호의 강화
- Federated Learning (통합 학습) : 사생활 침해를 최소화한 분산 데이터 기반 훈련, 데이터 섬(Data island) + 에지 컴퓨터 기반, TF Federated(PySyft(for Pytorch) -> 트래픽 및 자원 절약, 사생활 보호, 기업 내부 데이터를 노출하지 않은채로 모델 훈련 협업(!)
- On-chip 어시스턴트 : 어시스턴트의 다양한 기능을 칩으로 구현, 네트워크 없이 가능, 처리 지연 시간을 1/10으로 줄임
3-4) 클라우드 + 머신러닝
- TPU Pods V3 : XLNet 공개 (BERT 능가, TPU Pods V3을 쓰면 2.5일만에 트레이닝 가능, 비용은 2.9억;;)
- AutoML Vision Edge : Firebase(MLKit) + 모바일 + 전이학습
4. All you need is Google’s AI Tech - 김준성 (ScatterLab)
4-1) Research Overview (2018-2019)
4-2) NLP
- History : Word2Vec -> 통계기반 LM -> (Multi-Layer)Bi-LSTM LM -> ELMo -> BERT -> GPT-2 -> XLNet
- BERT (2018) : 이전 단어들을 주고 그 다음 단어 맞추기
- Pre-training에는 대량의 텍스트 데이터(Wikipedia) 사용 (대량의 시간)
- Fine-Tuning Sub Task : 레이블링 된 데이터셋으로 Fine-Tuning (얼마 안걸림)
- The Evolved Transformer (2019)
- Applying NAS AutoML based on Transformer
4-3) Vision
- Self-Supervised Tracking via Video Colorization (2018)
- Object Tracking이 대량의 Pixel 단위의 Labeling이 필요 -> 개선 필요
- 하나의 프레임을 기준으로 색을 칠하는 훈련을 시킴 (같은 색깔이면 같은 오브젝트(?))
4-4) Speech Generation
- Towards End-to-End Prosody Transfer for Expressive Speech Synthesis with Tacotron (2018)
- 단순히 문장(str)을 Voice로 생성 시키는게 아니라 ‘억양의 스타일’을 참고하여 생성해보자
- An End-to-End Speech-to-Speech Translation Model (2019)
- 중간에 텍스트 변환없이 음성 -> 음성으로 변환해 보자 (ASR + 번역 + TTS 과정은 너무 복잡함)
- Multi-Task Objective Training -> 아직 Ground Truth(목표하는 성능)에는 미치지 못함
- Voice-To-Voice Translation의 시작, End-to-End 번역의 출발점(?)
4-5) Speech Recognition
- Streaming End-to-End Speech Recognition for Mobile Devices (2018)
- On-Device에서 바로 Inference 할수 없을까?
- AS-IS : Acoustic Model -> Pronunciation Model -> … (용량이 너무 크고 복잡)
- TO-BE : Recurrent Neural Network Transducer(RNN-T) : 모델 크기를 80MB로 줄임 -> 오프라인에서도 음성인식이 가능
5. AllReduce for distributed learning - 한성민 (Naver Clova)
5-1) Distributed learning
- Parameter Server (Downpour SGD)
5-2) AllReduce
- Parameter Server가 없고, 각각의 노드끼리 통신함 -> 모든 Worker가 학습된 것을 공유 (모든 데이터가 동일해짐)
- horovod Architecture (Uber) -> Ring AllReduce
5-3) Federated Learning
- (개인 또는 기업) Privacy 보호 가능 (Secure Aggregation)
5-4) Cloud TPU Pods
- TPU v3 architecture : On-Device memory, unit up (H/W), XLA(S/W)
- 1-D ring AllReduce, 2-D ring AllReduce
'IT소식' 카테고리의 다른 글
[Google I/O] What's New Android 살펴보기 (2019) (0) | 2019.05.17 |
---|
- Total
- Today
- Yesterday
- 안드로이드
- 알고리즘
- 안드로이드 9.0
- ScrollView
- 자바
- Unity
- Java
- NestedScrollView
- 대학교
- Kotlin
- kakaotalk
- Android
- 신규기능
- ScrollView in ScrollView
- 액티비티
- 앱
- 개발
- google I/O
- 안드로이드Q
- 유니티
- 중첩
- 백그라운드
- 구글IO
- 카톡
- 백준
- KAKAO
- 코틀린
- 카카오톡
- Material
- 과제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |