발표자: 안혜민(서울대학교 박사과정)
발표일: 2017.11.
현: Ph.D. Student Cyber Physical Systems Laboratory Department of Electrical and Computer Engineering ASRI, Seoul National University
관심분야: Human Robot Interaction, Machine Learning
해외 저널: Hyemin Ahn, Yoonseon Oh, Sungjoon Choi, Claire J. Tomlin, and Songhwai Oh, ”Online Learning to Approach a Person with No-Regret,” in IEEE Robotics and Automation Letters, 2017.
개요:
본 세미나에선 사람의 언어와 행동 사이의 연관관계를 학습해, 사람의 행동을 묘사하는 문장이 입력으로 들어왔을 때 입력 문장에 해당하는 행동을 생성해 낼 수 있는 Text2Action 네트워크를 소개한다.
제시하는 네트워크는 Sequence to Sequence (Seq2Seq) 기반의 Generative Adversarial Network(GAN) 으로, 문장 입력을 해석하는 Recurrent Neural Network(RNN) 기반의 인코더와 인코딩된 문장 정보를 해석해 사람의 행동으로 출력해내는 RNN 기반의 디코더로 구성되어 있다.
해당 네트워크를 학습시키기 위해 마이크로소프트사의 MSR-VTT 데이터셋을 사용하였으며, 본 세미나에선 다양한 실험 결과를 통해 제시하는 네트워크가 입력되는 사람의 언어를 이해해 그에 해당하는 사람의 행동을 적절히 생성해 낼 수 있었음을 보일 예정이다.
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...MYEONGGYU LEE
review date: 2017/12/5 (by Meyong-Gyu.LEE @Soongsil Univ.)
Korean Paper review of 'Kernel Predicting Convolutional Networks for Denoising Monte Carlo Renderings'(Siggraph2017)
Vs^3 net for machine reading comprehension question answeringNAVER Engineering
기계 독해(Machine reading comprehension)를 이용한 질의 응답(Question answering)은 주어진 문맥을 이해하고, 질문에 적합한 답을 문맥 내에서 찾는 문제이다. 기계 독해 중 SQuAD dataset은 span 단위의 답을 문맥 내에서 찾는 질의응답 태스크이다. 본 발표에서는 SQuAD 2.0에 도전하기 위하여 연구한 VS^3-NET에 대하여 설명한다. VS^3-NET은 simple recurrent unit (SRU)와 sentence- 및 self-matching network 모델을 기반으로 하고 있으며, 다양한 질문 유형에 대하여 모델링을 수행하기 위해 variational inference network를 함께 적용한다.
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...MYEONGGYU LEE
review date: 2017/12/5 (by Meyong-Gyu.LEE @Soongsil Univ.)
Korean Paper review of 'Kernel Predicting Convolutional Networks for Denoising Monte Carlo Renderings'(Siggraph2017)
Vs^3 net for machine reading comprehension question answeringNAVER Engineering
기계 독해(Machine reading comprehension)를 이용한 질의 응답(Question answering)은 주어진 문맥을 이해하고, 질문에 적합한 답을 문맥 내에서 찾는 문제이다. 기계 독해 중 SQuAD dataset은 span 단위의 답을 문맥 내에서 찾는 질의응답 태스크이다. 본 발표에서는 SQuAD 2.0에 도전하기 위하여 연구한 VS^3-NET에 대하여 설명한다. VS^3-NET은 simple recurrent unit (SRU)와 sentence- 및 self-matching network 모델을 기반으로 하고 있으며, 다양한 질문 유형에 대하여 모델링을 수행하기 위해 variational inference network를 함께 적용한다.
[기초개념] Recurrent Neural Network (RNN) 소개Donghyeon Kim
* 시계열 데이터의 시간적 속성을 이용하는 RNN과 그 한계점을 극복하기 위한 LSTM, GRU 기법에 대해 기본적인 개념을 소개합니다.
* 광주과학기술원 인공지능 스터디 A-GIST 모임에서 발표했습니다.
* 발표 영상 (유튜브, 한국어): https://youtu.be/Dt2SCbKbKvs
Big Bird - Transformers for Longer Sequencestaeseon ryu
안녕하세요 딥러닝 논문 읽기 모임입니다. 오늘 업로드된 논문 리뷰 영상은 NeurIPS 2020 에 발표된 'Big Bird - Transformers for Longer Sequences'라는 제목의 논문입니다.
오늘 소개해 드릴 논문은 Big Bird로, Transformer 계열 논문들의 Full Attention 구조의 한계를 리캡하고, Long Sequence의 처리를 매우 효율적으로 처리하기 위함을 목표로 나온 논문입니다. 트랜스포머의 엄청난 성능은 이미 다들 잘 알고 계시지만, 시퀀스 길이가 길어질수록 연산의 한계에 부딪히게 되는데, 이에 많은 논문이 비효율적인 연산을 줄이고자 많은 시도가 있었고, Big Bird도 그중 하나의 논문이라고 생각해 주시면 됩니다. 오늘 논문 리뷰를 위해 자연어 처리팀 백지윤 님이 자세한 리뷰 도와주셨습니다.
ZUIX is a design system created by Zigbang's CTO team to standardize design across all of Zigbang's services. It uses React Native for responsive, multi-platform components and includes tools like Storybook for development and a design review infrastructure for validation. The deployment process involves code reviews, CI/CD pipelines, and publishing to a npm registry. Training and documentation is provided through tools like Google Classroom and Notion. The team aims to further develop ZUIX by improving the design review tools, adding end-to-end testing, and analyzing component usage. The goal is to solve Zigbang's unique challenges through an agile, collaborative approach between designers and developers.
This document discusses Kakao's search platform front-end project. It describes the architecture of an integrated search service using microservices and the need for a design system due to fragmented UIs. It introduces the KST (Kakao Search Template) project for creating a design system including 200+ UI blocks and templates. The KST Builder, Logger, and Dashboard are discussed for managing templates, logging usage, and monitoring coverage. Maintaining a consistent design system is important for operating diverse search services and platforms.
This document discusses Banksalad Product Language (BPL), which is a method used at Banksalad to standardize UI text, elements, and components. It allows designers and developers to use consistent terms, while abstracting UI elements to different levels suitable for their roles. Examples of standardized elements are provided, as well as external resources that discuss concepts like tree shaking that are relevant to BPL. While BPL has benefits, the document considers whether there may be better approaches than BPL.
This document summarizes a presentation about using Stitches, a React styling library, and Storybook for component design.
The presentation introduces Stitches as the styling library used for its support of React, easy usage, and themes. Key features of Stitches discussed include creating styled components, variants, and comparisons to other libraries.
Storybook is presented as a way to improve communication between designers and developers by allowing visualization of components alongside their stories. Clean communication through a shared Storybook is emphasized.
Reflections on initially creating a design system note the benefits of consistency and speed but also identify areas for improvement like documentation, process alignment, and understanding each other's roles. Establishing trust and understanding between
비행기 설계를 왜 통일 해야 할까?
디자인 시스템을 하는 이유
비행기들이 다 용도가 다르다...어떻게 설계하지?
맥락이 다른 페이지와 패턴
경유지까지 아직 멀었다... 언제 수리하지?
디자인 시스템을 적용하는 시점
엔지니어랑 얘기해서 정비해야하는데...어떻게 수리하지?
디자인 시스템을 적용하는 프로세스
비행기 설계가 바뀐걸 어떻게 알리지?
디자인 시스템의 전파
The document discusses Kotlin coroutines and how they can be used to write asynchronous code in a synchronous, sequential way. It explains what coroutines are, how they work internally using continuation-passing style (CPS) transformation and state machines, and compares them to callbacks. It also outlines some of the benefits of using coroutines, such as structured concurrency, light weight execution, built-in cancellation, and simplifying asynchronous code. Finally, it provides examples of how to use common coroutine builders like launch, async, and coroutineScope in a basic Android application with ViewModels.
[기초개념] Recurrent Neural Network (RNN) 소개Donghyeon Kim
* 시계열 데이터의 시간적 속성을 이용하는 RNN과 그 한계점을 극복하기 위한 LSTM, GRU 기법에 대해 기본적인 개념을 소개합니다.
* 광주과학기술원 인공지능 스터디 A-GIST 모임에서 발표했습니다.
* 발표 영상 (유튜브, 한국어): https://youtu.be/Dt2SCbKbKvs
Big Bird - Transformers for Longer Sequencestaeseon ryu
안녕하세요 딥러닝 논문 읽기 모임입니다. 오늘 업로드된 논문 리뷰 영상은 NeurIPS 2020 에 발표된 'Big Bird - Transformers for Longer Sequences'라는 제목의 논문입니다.
오늘 소개해 드릴 논문은 Big Bird로, Transformer 계열 논문들의 Full Attention 구조의 한계를 리캡하고, Long Sequence의 처리를 매우 효율적으로 처리하기 위함을 목표로 나온 논문입니다. 트랜스포머의 엄청난 성능은 이미 다들 잘 알고 계시지만, 시퀀스 길이가 길어질수록 연산의 한계에 부딪히게 되는데, 이에 많은 논문이 비효율적인 연산을 줄이고자 많은 시도가 있었고, Big Bird도 그중 하나의 논문이라고 생각해 주시면 됩니다. 오늘 논문 리뷰를 위해 자연어 처리팀 백지윤 님이 자세한 리뷰 도와주셨습니다.
ZUIX is a design system created by Zigbang's CTO team to standardize design across all of Zigbang's services. It uses React Native for responsive, multi-platform components and includes tools like Storybook for development and a design review infrastructure for validation. The deployment process involves code reviews, CI/CD pipelines, and publishing to a npm registry. Training and documentation is provided through tools like Google Classroom and Notion. The team aims to further develop ZUIX by improving the design review tools, adding end-to-end testing, and analyzing component usage. The goal is to solve Zigbang's unique challenges through an agile, collaborative approach between designers and developers.
This document discusses Kakao's search platform front-end project. It describes the architecture of an integrated search service using microservices and the need for a design system due to fragmented UIs. It introduces the KST (Kakao Search Template) project for creating a design system including 200+ UI blocks and templates. The KST Builder, Logger, and Dashboard are discussed for managing templates, logging usage, and monitoring coverage. Maintaining a consistent design system is important for operating diverse search services and platforms.
This document discusses Banksalad Product Language (BPL), which is a method used at Banksalad to standardize UI text, elements, and components. It allows designers and developers to use consistent terms, while abstracting UI elements to different levels suitable for their roles. Examples of standardized elements are provided, as well as external resources that discuss concepts like tree shaking that are relevant to BPL. While BPL has benefits, the document considers whether there may be better approaches than BPL.
This document summarizes a presentation about using Stitches, a React styling library, and Storybook for component design.
The presentation introduces Stitches as the styling library used for its support of React, easy usage, and themes. Key features of Stitches discussed include creating styled components, variants, and comparisons to other libraries.
Storybook is presented as a way to improve communication between designers and developers by allowing visualization of components alongside their stories. Clean communication through a shared Storybook is emphasized.
Reflections on initially creating a design system note the benefits of consistency and speed but also identify areas for improvement like documentation, process alignment, and understanding each other's roles. Establishing trust and understanding between
비행기 설계를 왜 통일 해야 할까?
디자인 시스템을 하는 이유
비행기들이 다 용도가 다르다...어떻게 설계하지?
맥락이 다른 페이지와 패턴
경유지까지 아직 멀었다... 언제 수리하지?
디자인 시스템을 적용하는 시점
엔지니어랑 얘기해서 정비해야하는데...어떻게 수리하지?
디자인 시스템을 적용하는 프로세스
비행기 설계가 바뀐걸 어떻게 알리지?
디자인 시스템의 전파
The document discusses Kotlin coroutines and how they can be used to write asynchronous code in a synchronous, sequential way. It explains what coroutines are, how they work internally using continuation-passing style (CPS) transformation and state machines, and compares them to callbacks. It also outlines some of the benefits of using coroutines, such as structured concurrency, light weight execution, built-in cancellation, and simplifying asynchronous code. Finally, it provides examples of how to use common coroutine builders like launch, async, and coroutineScope in a basic Android application with ViewModels.
This document contains the transcript from a presentation given by Wonsuk Lim from Naver on tips for debugging and analyzing Android applications. Some key tips discussed include fully utilizing the Android emulator's capabilities like 2-finger touch control, clipboard sharing between the emulator and host PC, and mocking locations. Advanced settings for the emulator like foldable and camera emulation are also covered. The presenter recommends ways to configure developer options and use tools like LeakCanary, the Android profiler, and Stetho for testing app stability. Methods for understanding the Android framework by reviewing system services and managers via AIDL files and logcat dumps are presented. Finally, reverse engineering tools like APK Extractor and decompilers are introduced.
2. Introducing Myself
2017-11-16 CPSLAB (EECS) 2
Interested in Human Robot Interaction based on the machine learning,
and Human’s nonverbal communication.
3. Today’s Seminar: Text2Action
2017-11-16 CPSLAB (EECS) 3
Text2Action: Generative Adversarial Synthesis from Language to Action
• 사람의 행동을 설명하는 문장이 주어지면, 해당 문장 (Language)이 설명하
는 사람의 행동(Action)을 생성할 수 있게 하는 Neural Network.
Man is dancing to music
4. Text2Action: Generative Adversarial Synthesis from Language to Action
• 사람의 행동을 설명하는 문장이 주어지면, 해당 문장 (Language)이 설명하
는 사람의 행동(Action)을 생성할 수 있게 하는 Neural Network.
Today’s Seminar: Text2Action
2017-11-16 CPSLAB (EECS) 4
이런 네트워크를 만드는 것이 목적이라면 구체적으로 어떤 일을 해야 하는가?
1. 입력 받은 Natural Language를 어떻게 처리해야 하는가?
• 문장(Sentence) 이란 무엇인가?
• Sequence of characters / words
• 입력 문장이 행동에 대해 어떤 정보를 담고 있는지와 관련된
feature는 어떻게 encoding해야 하는가?
2. 처리된 Natural Language로부터 행동을 어떻게 생성해내야 하는가?
• 행동(Action) 이란 무엇인가?
• Sequence of poses in time.
• 매 순간의 pose를 생성하기 위해선 입력문장으로부터
encoding된 feature를 어떻게 전달해 주는 것이 좋은가?
Word2Vec
RNN
Sequence
to Sequence
5. • Vector Representations of Words! (Word embeddings)
• 글 내부에서 가까이 위치해 있는 단어끼리는 유사한 의미를 지녔을 것이라는
가정(Distributional Hypothesis)을 기반으로, 벡터 공간에서 각 단어들이 어떻게
분포해 있는지를 학습.
• 각 단어들을 one-hot vector로 표현해 쓰는 것 보다 더 효과적!
Backgrounds : Word2Vec
2017-11-16 CPSLAB (EECS) 5
7. Backgrounds : Recurrent Neural Networks(RNN)
2017-11-16 CPSLAB (EECS) 7
• 사람은 연속적으로 일어나는 일들의 패턴을 기억하고 사용.
• 쉽게 되는 것 : ‘가 나 다 라 마 바 사…’
• 하지만 이걸 거꾸로 한다면?: ‘하 파 카 타 차 자 아…’ ?
• ‘이러한 Sequence에 담긴 정보를 활용할 수 있도록 해보자!’
가 RNN이라는 것을 탄생시킨 아이디어!
• Sequence가 가진 패턴을 학습해서, 다음에 어떤 일이 일어날
지 Estimation하거나, 새로운 Sequence를 Generation하는데
이용해보자!
• But HOW?
8. 2017-11-16 CPSLAB (EECS) 8
OUTPUT
INPUT
ONE
STEP
DELAY
HIDDEN
STATE
RNN이 “RECURRENT” 라고 불리는 이유는
Sequence를 이루는 요소를 하나씩 입력으로 받을
때 마다 같은 작업을 반복적으로 수행하기 때문.
또한, 출력되는 값은 이전 작업들에서 계산되어왔
던 내용들에 dependent 하게 됨.
RNN은 현재까지 어떤 내용들이 계산되어 왔는지
를 저장하는 “메모리”를 가지고 있음
“메모리”에 해당하는 Hidden state 𝒉 𝒕 는 입력
Sequence와 관련된 정보를 저장함.
만약 𝑓 = tanh, 이라면 Vanishing/Exploding
gradient problem이 생겨날 수 있음.
이를 극복하기 위해, 주로 LSTM/GRU가 𝑓로
써 주로 사용됨.
𝒉 𝒕
𝒚 𝒕
𝒙 𝒕
ℎ 𝑡 = 𝑓 𝑈𝑥 𝑡 + 𝑊ℎ 𝑡−1 + 𝑏
𝑦𝑡 = 𝑉ℎ 𝑡 + 𝑐
𝑈
𝑊
𝑉
Backgrounds : Recurrent Neural Networks(RNN)
9. 2017-11-16 CPSLAB (EECS) 9
• 쇼핑백에 들어있는 물건들로부터 오늘의 저녁 메뉴가 무엇일지 추측해
보는 기계가 있다고 생각해 봅시다.
음…
까르보나라?
Backgrounds : Long Short Term Memory (LSTM)
10. 2017-11-16 CPSLAB (EECS) 10
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Backgrounds : Long Short Term Memory (LSTM)
11. 2017-11-16 CPSLAB (EECS) 11
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Forget
Some
Memories!
Backgrounds : Long Short Term Memory (LSTM)
12. 2017-11-16 CPSLAB (EECS) 12
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Forget
Some
Memories!
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
Backgrounds : Long Short Term Memory (LSTM)
13. 2017-11-16 CPSLAB (EECS) 13
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Insert
Some
Memories!
Backgrounds : Long Short Term Memory (LSTM)
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
14. 2017-11-16 CPSLAB (EECS) 14
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Backgrounds : Long Short Term Memory (LSTM)
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
15. 2017-11-16 CPSLAB (EECS) 15
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒙 𝒕
Backgrounds : Long Short Term Memory (LSTM)
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
16. 2017-11-16 CPSLAB (EECS) 16
𝑪 𝒕
Cell state,
Internal memory unit,
Like a conveyor belt!
𝒉 𝒕
𝒚 𝒕
𝒙 𝒕
Backgrounds : Long Short Term Memory (LSTM)
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
17. 2017-11-16 CPSLAB (EECS) 17
Figures from http://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
Backgrounds : Long Short Term Memory (LSTM)
18. 2017-11-16 CPSLAB (EECS) 18
Figures from http://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
Backgrounds : Long Short Term Memory (LSTM)
19. 2017-11-16 CPSLAB (EECS) 19
Figures from http://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM 은 (1) 이전 ℎ 𝑡−1와 새로운 입력 𝑥 𝑡 이 주어졌을 때 Memory의 어떤 부분을 지울지
(2) 그리고 ℎ 𝑡−1 and 𝑥 𝑡가 들어왔을 때 새 메모리를 어떻게 더할 지 결정
Backgrounds : Long Short Term Memory (LSTM)
21. 2017-11-16 CPSLAB (EECS) 21
ℎ 𝑒(1) ℎ 𝑒(2) ℎ 𝑒(3) ℎ 𝑒(4) ℎ 𝑒(5)
LSTM/GRU
Encoder
LSTM/GRU
Decoder
ℎ 𝑑(1) ℎ 𝑑(𝑇𝑒)
Western Food
To
Korean Food
Transition
Backgrounds : Sequence to Sequence
22. 2017-11-16 CPSLAB (EECS) 22
• Sequence to Sequence 모델을 구현하는 가장 간단한 방법은?
Encoder의 마지막 hidden state 𝒉 𝑻를 Decoder
의 맨 처음 cell으로 넘겨준다!
• 하지만, 이 방법은 Decoder에서 더 긴 sequence를 생성해낼 필요가 있을 수
록 효과가 떨어진다는 단점이 있다.
Backgrounds : Sequence to Sequence
25. 2017-11-16 CPSLAB (EECS) 25
But the result from just Seq2Seq is…..
Input Sentence:
The girl is dancing
to the music.
26. 2017-11-16 CPSLAB (EECS) 26
But the result from just Seq2Seq is…..
Input Sentence:
The man is talking
to the audience.
27. 2017-11-16 CPSLAB (EECS) 27
How can we generate more realistic action?
Let’s take advantage of Generative Adversarial Network! (GAN)
But HOW?
28. 2017-11-16 CPSLAB (EECS) 28
Generator and Discriminator
min
𝐺
max
𝐷
𝑉 𝐷, 𝐺 =
𝔼 𝒙~𝑝 𝑑𝑎𝑡𝑎(𝒙) log 𝐷(𝒙, 𝒄)
+𝔼 𝒛~𝑝 𝒛(𝒛) log 1 − 𝐷 𝐺 𝒛, 𝒄
Only relying on this
value function can
make terrible results!
<Warning>
30. 2017-11-16 CPSLAB (EECS) 30
Text2Action: Used Training Data
• Extracted pose data from the MSR-VTT dataset, which includes the Youtube
videos and corresponding language descriptions
31. 2017-11-16 CPSLAB (EECS) 31
Text2Action: Result
Input Sentence:
The girl is dancing
to the hip hop beat.
32. 2017-11-16 CPSLAB (EECS) 32
Text2Action: Result
Input Sentence:
The girl is dancing
to the hip hop beat.
33. 2017-11-16 CPSLAB (EECS) 33
Text2Action: Result
Input Sentence:
The girl is dancing
to the hip hop beat.
34. 2017-11-16 CPSLAB (EECS) 34
Text2Action: Result
Input Sentence:
A chef is cooking a
meal in the kitchen.
35. 2017-11-16 CPSLAB (EECS) 35
Text2Action: Result
Input Sentence:
A man is throwing
something to the
front.