개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
※ 본 리그는 메가존 클라우드가 자체적으로 진행하는 행사로 AWS에서 개최하는 리그와 무관합니다. ※ 상금 및 경품 지급 시 소득세 등 제세공과금이 차감 혹은 청구 됩니다. ※ 본 경기 규칙은 AWS DeepRacer League 규칙을 따르며 트랙 또한 re:Invent 2018 트랙에서 진행 됩니다.
========================================
저는 AWS Deepracer 모델 차량을 7월 중순에 받을 예정이라서 10월 3일 토론토에서 열리는 경기에 참가할 수 있을 것 같습니다.
휴가 내고 비행기 타고 가서 참가할 생각인데....
어떻게 될 지 아직......
지금 제가 만들고 있는 모델은 Kumo Torakku 트랙에서 23초를 기록하고 그 이후에는 전혀 기록이 나아 지질 않고 있습니다.
지금 1,2,3 등은 모두 10초 대 이던데.... 그런 기록은 어떻게 하면 낼 수 있을 지.......
Teslastock continues to drop, and has now fallen to roughly half its peak of $385. This is bad, but it is nowhere as bad asNetflix’s80% stock decline in 2011. Netflix’s decline was followed by an eight-year stretch of growth. Will Tesla shareholders be similarly rewarded? The question is whether Netflix’s 2011 is a comparable proxy for Tesla’s 2019.
테슬라 주가는 계속 하락세를 보이고 있으며, 지금은 이전 최고치 인 $ 385의 절반 정도로 하락했다. 안 좋은 주가이다, 하지만 2011 년 Netflix의 주가가 80 % 폭락한 정도는 아니다. 이 Netflix의 폭락 이후 넷플릭스는 8년간의 지속적인 성장을 보인다. 테슬라 주주들도 마찬가지로 보상받을 것인가? 문제는 Netflix의 2011 년이 테슬라의 2019 년과 비슷한 상황인지 아닌지다.
Back in 2011, Netflix had announced ajarring price increase, and CEO Reed Hastings announced it was separating its streaming business from its DVD by mail business. In a single quarter, Netflix lost 800,000 subscribers—just over 3% of its subscribers, then sitting at 24 million.
2011 년으로 돌아가서, 당시 Netflix는 (약간 분위기에 안 맞게) 가격 인상을 발표했으며, CEO인 Reed Hastings는 스트리밍 사업을 우편을 통해 DVD 를 배달하는 사업과 분리한다고 발펴했다. 당시 1 분기만에 넷플릭스는 총 가입자 수의 3 %를 상회하는 80 만 명의 가입자를 잃어 총회원수가 2400 만명이 되었다.
At the core of those costly decisions was the company’s belief in their category. They believed that streaming was the future and had a significant upside. And Netflix was 100% right. Now they have 60 million households in the U.S. and 150 million worldwide. The stock price is 39 times higher than its low point in 2011.
당시 리스크가 많은 이 결정의 핵심은 회사의 카테고리에 대한 믿음이었습니다. 그들은 스트리밍이 미래라고 믿었고 실제로 그 결정이 상승의 기폭제가 되었다. Netflix의 예상과 결정이 100 % 들어 맞은 것이다. 넷플릭스는 현재 미국에 6000 만 가구, 전 세계에 1 억 5000 만 가구를 회원으로 두고 있다. 주가는 2011 년 저점보다 39 배 상승했다.
Similarly, Tesla is spot on in their belief that demand for electric vehicles will grow exponentially. In 2018, electric vehicles were 2% of total new cars sold in the U.S. but20% of Americans want an electric vehicle(per a study by AAA). Electric vehicles already have roughly a 10% market share in California. Tesla accounts for more than 60% of the share of growth of electric cars. The idea that Tesla’s30,000 dipin deliveries in Q1 2019 versus Q4 of 2018 highlights a fundamentaldemand problemwith either electric vehicles (which could easily number in the millions in the near future) or Tesla itself (since their products are beloved by consumers) seems like a stretch.
이와 비슷하게, 테슬라는 전기 자동차에 대한 수요가 기하 급수적으로 늘어날 것이라는 믿음을 가지고 있다. 2018 년 전기 자동차는 미국에서 판매 된 총 신차의 2 %를 기록하고 있지만 미국인의 20 %는 전기 자동차를 원하는 것으로 알려져 있다. (AAA에 의한 연구 당). 전기 자동차는 이미 캘리포니아에서 약 10 %의 시장 점유율을 가지고 있습니다. 테슬라는 전기 자동차의 성장 점유율의 60 % 이상을 차지합니다. 2018년 4사분기와 비교했을 때 2019년 1사분기의 차량 판매량이 3만대 줄어든 것은 근본적인 수요 이슈를 부각 시켰습니다. 즉 가까운 미래에 수백만에 다다를 것으로 생각되는 전기차 사업 혹은 테슬라 그 자체이든 시장은 확대 될 것이라는 것입니다. (테슬라의 제품은 고객들로 부터 사랑을 받고 있습니다.)
Netflix also believed in their pricing power, especially if they continued to improve their product (e.g., better recommendations and more content, including original, award-winning content). Netflix was also correct about this, and hascontinued to raise prices successfully. Even though Netflix has surely lost some subscribers as they’ve raised prices, total revenue and profits have grown enough to offset those losses.
Netflix는 또한 pricing power를 믿었습니다. 특히 제품 개선을 지속하는 경우 (예 : 더 나은 추천 기능이나 좀 더 많은 - 오리지널 이거나 수상경력이 있는 - 콘텐츠 등) pricing power는 더욱 증가할 것이라고 믿었습니다. Netflix의 이 예측도 들어 맞았습니다. 그 결과 그들은 지속적으로 가격을 올리는데 성공했습니다. 가격 인상으로 일부 고객을 잃은 것은 사실이지만 그들은 가격을 인상함으로서 총 매출과 수익은 그 손실을 상쇄하기에 충분했습니다.
Tesla hasn’t increased its prices, but did see the $7,500 federal rebate for electric vehicles halved at the end of 2018—just at the same time their delivery volume dropped. Some analysts connected these two dots and see weakness in demand for Teslas. The more likely scenario is that this temporary price shock impacted quarterly sales by pulling some Q1 2019 sales earlier into Q4 2018 since the federal tax rebate phase-out was known for some time.
테슬라는 가격을 인상하지 않았지만 2018 년 말에 전기 자동차에 대한 7,500 달러의 연방 환급액이 절반으로 줄었습니다. 같은 기간 테슬라의 delivery 볼륨도 줄었습니다. 일부 분석가들은 이 둘을 근거로 Teslas에 대한 수요 약세로 보았습니다. 하지만 가장 그럴듯한 시나리오는 이러한 연방 세금 환급이 사라질 것이라고 알려져 그 이전인 2018년 1사분기의 수요를 증가시켰고 이는 2019년 1사분기 수요를 미리 끌어 당겼기 때문에 위와 같은 결과 - 2019년 1/4분기 매출이 3만대 감소- 가 나왔다는 겁니다.
The reality is that Tesla’s pricing power is strong. The best evidence of Tesla’s pricing power is that Tesla is attracting mainstream car owners as well as other luxury brand owners. Per CEO Elon Musk, the five most commonly traded in cars for a Tesla areHondaAccord, Honda Civic,ToyotaPrius, Nissan Leaf, and BMW 3 series. It is no coincidence that from 2016 to 2018 Toyota Prius, Toyota Camry, Honda Accord, and Honda Civic all decreased a collective 15% in the US. This decline of nearly 190,000 cars is comparable to theover 180,000 Teslassold in the US in 2018.
현실은 테슬라의 가격 결정권이 강하다는 것이다. 테슬라의 가격 결정력에 대한 가장 좋은 증거는 테슬라가 다른 럭셔리 브랜드 뿐만 아니라 주류 자동차 소비자를 끌어 들이고 있다는 것입니다. CEO 인 엘론 머스크 (Elon Musk)에 따르면 테슬라가 일반적으로 대체하는 5개의 차량은 혼다 어코드, 혼다 시빅, 토요타 프리우스, 닛산 리프, BMW 3 시리즈 등 입니다. 2016 년부터 2018 년까지 Toyota Prius, Toyota Camry, Honda Accord 및 Honda Civic의 판매량이 미국에서 15 % 감소했습니다. 차량 대수로는 약 19 만대의 감소한 것입니다. 이것은 2018 년에 미국에서 판매 된 180,000 대가 넘는 테슬라의 판매 대수와 비슷합니다.
Netflix and Tesla have also both struggled in some of the same ways, namely communication and execution.
Netflix와 Tesla는 communication and execution이라는 측면에서 비슷한 방식으로 어려움을 겪었습니다.
Even though Netflix was ultimately right to increase prices and focus on streaming, it was clumsy in how it communicated these changes to customers. The timing of some of these moves was also off: it could have allowed DVD by mail to slowly fade, and introduced its price hike when it launchedHouse of Cards, its first major success in original content. These were unforced errors. Similarly, Tesla has had similar, self-inflicted struggles on communication and execution.
넷플 릭스가 궁극적으로 가격을 올리고 스트리밍에 집중하는 것이 옳았지 만 이러한 변화를 고객에게 어떻게 전달했는지는 서툴 렀다. 이러한 움직임의시기는 또한 벗어났습니다. 우편으로 DVD를 배달하는 서비스를 좀 더 천천히 사라지도록 할 수 있었고 원본 콘텐츠로 첫번째 메이저급 성공을 거둔 House of Cards의 상영이 시작됐을 때 가격 상승을 발표할 수도 있었다. 즉 발표 타이밍에서 서툴렀다는 것이다. 이것은 자체적인 오류라고 할 수 있다. 비슷하게, 테슬라는 communication and execution 에 있어 자초한 어려움을 비슷하게 겪고 있다.
The difference between the two firms is that since those earlier stumbles, Netflix’s execution has gotten smoother and their communication more empathetic. Netflix has continued to raise prices, using a good/better/best pricing strategy to give customers a feeling of control. Netflix has also recognized that it’s costly to try and be great at everything; this is why they’ve migrated to Amazon Web Services, even though Amazon Prime Video is a direct competitor. They’ve managed to focus on improving and expanding their content and geographies.
두 회사의 차이점은 넷플 릭스의 사태가 더 일찍 일어 났으므로 넷플 릭스의 execution이 좀 더 원활해졌고 communication은 좀 더 공감을 얻었다는 겁니다. Netflix는 고객에게 고객 자신이 가격을 컨트롤 하고 있다는 느낌을 주기 위해 good/better/best라는 가격 정책을 사용하면서 가격을 인상했습니다. Netflix는 또한 모든 것에서 최고가 되려고 하는 것이 너무 많은 비용을 초래한 다는 것을 깨달았습니다. 그렇기 때문에 Amazon Prime Video가 직접적인 경쟁자 임에도 불구하고 Amazon Web Services로 마이그레이션 한 이유입니다. 그들은 콘텐츠를 개선하고 서비스 지역을 확장하는데 초점을 맞춰서 사업을 진행했습니다.
Meanwhile, Tesla seems to be trying to do too many things at once, perhaps one reason they are struggling on deliveries. Musk continues to juggle roles across Tesla, Space X, and the Boring Company, and to occasionally issue SEC-incensing tweets.
그 사이에, Tesla는 한꺼번에 너무 많은 것을 시도하고있는 것처럼 보인다, 아마 납품에 어려움을 겪고 있는 것도 한 이유일 것이다. 머스크는 테슬라, 스페이스 X, the Boring Company에서 계속 자신의 역할을 수행하고 있다. 그리고 때때로 SEC를 건드리는 트윗도 하고 있다.
While Tesla is right about consumer demand and their pricing power, they should also remember that a successful company takes more than that. Being right isn’t always enough.
테슬라의 소비자 수요와 가격 결정력에 대해서는 옳다고 생각하지만 성공적인 기업은 그 이상을 필요로한다는 것을 기억해야합니다. 옳다는 것이 항상 충분한 것은 아닙니다.
re:Invent 2019에서 AWS DeepRacer Cup에서 우승해 상금, 영예, AWS DeepRacer Championship Cup을 획득하세요. 매월 열리는 가상 Circuit 레이스에서 온라인으로 경쟁하거나 전 세계 Summit Circuit 경주 행사에서 직접 경쟁 할 수 있습니다.
Standings: Check out the live leaderboard and latest race results
일본의 스즈카 트랙에서 영감을 얻은 Kumo Torakku 서킷 레이싱에서 우승해 re:Invent로 가는 경비 지원을 받으세요. 후지산을 보며 도쿄의 거리를 달려 승리하세요. 그리고 포인트와 상금을 획득하세요. 그리고 AWS re:Invent 2019에서 열리는 AWS DeepRacer Championship Cup 출전권도 받으세요.
AWS Free Tier를 사용하면 최대 10 시간동안 훈련을 무료로 진행할 수 있습니다. 그러니까 AWS DeepRacer League에 아무런 비용을 들이지 않고 참여해 보세요.
Take a step inside the AWS DeepRacer League. Episode 1 follows the competition to Amsterdam, featuring developers of all skill levels hoping to qualify for a chance to win the Championship Cup at AWS re:Invent 2019. Tune in now to learn more about their strategy and how you can build and tune a model for a chance to win!
AWS DeepRacer League를 향해 한걸음 내디뎌 보세요. 에피소드 1은 암스테르담에서의 경기가 나옵니다. AWS re:Invent 2019 에서 열리는 Championship Cup에서 우승하는 것을 목표로 하는 다양한 수준의 개발자들이 나옵니다. 그들의 전략에 대해 배워 보세요 그리고 여러분은 우승을 위해 어떻게 모델을 만들어 갈 것인지 생각해 보세요.
Pick a race
개발자는 매월 공개 될 유명한 raceways에서 영감을 얻은 가상 트랙을 통해 Virtual Circuit에서 경쟁함으로써 테스트에 자신의 기술을 적용 할 수 있습니다. re:Invent 2019에서 열리는 AWS DeepRacer Championship Cup에 대한 경비와 경품을 얻기 위해 경쟁 할 수 있습니다.
20 개의 AWS Summit 중 아무 Summit이나 선택해서 직접 참가하세요. (참여하고 싶으면 여러 Summit에 참여하실 수 있습니다.) 워크샵을 통해 re:MARS 및 re:Invent 2019에서 모델을 어떻게 만들고 트레이닝 시킬 지에 대해 도움을 드릴 겁니다. 여러분이 트레이닝 시킨 모델을 집으로 가져 가실 수도 있습니다. 그리고 그 모델을 테스트하고 엑스포에서 그것을 가지고 경쟁하실 수 있습니다.
기계 학습을 처음 사용 하던지 기존 스킬을 기반으로 준비하든, 우리는 당신이 경주 준비를하는 것을 도울 수 있습니다. e- 러닝 수업 인 AWS DeepRacer : 강화 학습 학습에 의해 시작할 수 있습니다. 약 90 분 후에 보강 학습 (자율 차량 교육에 이상적인 기계 학습의 한 분야)의 기본 사항과 AWS DeepRacer - 트랙을 누빌 준비가되었습니다!
Summit Circuit 레이스 또는 Virtual Circuit 레이스에서 경쟁하십시오. 경쟁하는 레이스 수에는 제한이 없습니다. Virtual Circuit 또는 Summit Circuit 레이스 중 하나만이라도 1등을 하면 라스베가스에서 열리는 AWS re:Invent에서 열리는 AWS DeepRacer final round에 참가하는 경비를 지원받으실 수 있습니다. 각 레이스의 10등까지는 AWS DeepRacer 자동차를 받으실 수 있습니다.
각 레이스마다 참여하시면 포인트를 받게 됩니다. 2019년 말에 이 포인트들의 합계를 가지고 등수를 가립니다. 각 Circuit의 우승자에게는 re:Invent 2019의 AWS DeepRacer knockout(final) 라운드에 참가하는 경비를 지원 받으실 수 있습니다. 자세한 내용은 AWS DeepRacer 공식 규칙을 참조하십시오.
레이스에 참가하면 2019 AWS DeepRacer League Champion이 될 수 있습니다!
AmazonCloudWatchis a monitoring service for AWS cloud resources and the applications you run on AWS. You can use AmazonCloudWatchto collect and track metrics, collect and monitor log files, set alarms, and automatically react to changes in your AWS resources.
이 Total Reward over time 페이지는 아래와 같다.
Reward Graph가 좀 더 자세하게 나오고 그 아래에는 뭔지 모를 4개의 탭이 있고 더 뭔지 모를 여러 정보들이 있다.
뭐 별로 눈길을 끄는게 없어서 다음으로 패스.
View logs를 클릭 해 봤다.
역시 AWS Cloudwatch 서비스 페이지로 넘어갔다.
여기에는 로그 정보들이 있다.
매일 코딩을 하다보면 어쩔 수 없이 뚫어져라 볼 수 밖에 없는 게 로그 정보들이라서 이건 좀 친숙하다.
우선 첫번째 링크는 Lamda로그인 것 같은데 여기엔 별 정보가 없었다.
두 번째 로그는 시뮬레이션 관련 로그인 것 같다.
이 정보들을 활용하는 법을 알면 유용한 정보일 수 있을 것 같다.
아직은 잘 몰라서 그냥 이런게 있다는 것만 알고 넘어간다.
마지막 세번째 링크가 Training 관련 로그이다.
여기엔 좀 뭔가 알아 먹을 것 같은 로그 정보들이 있다.
이건 직선 트랙에 디폴트 reward_function 을 사용한 트레이닝 로그인데 여기에 에피소드와 이터레이션 정보가 있다.
30분간 트레이닝을 시켰는데 마지막 에피소드는 372 이다.
아마 372번 훈련을 한 것이다.
1개의 iteration에는 20개의 에피소드가 있다.
그래서 총 18개의 iteration이 있다.
각 에피소드 별로 Total Reward와 Steps 정보가 있다.
이 로그에는 대충 이런 정보들이 있다.
그 외에 이 로그 시작 부분에 각 종 환경 변수나 파라미터 정보들이 있다.
그 다음 Evaluation section에는 평가 결과 정보가 있다.
평가는 3번 하는 것 같다.
평가 작업은 계속 할 수 있는데 이 서비스는 별도의 요금을 내는 것 같아서 여러번 시도하지는 않았다.
그 다음 Training Configuration section에는 여러 config 정보를 볼 수 있다.
Reward function의 Show 버튼을 누르면 이 모델에서 사용한 Reward function을 볼 수 있다.
그리고 그 밑에 Action space 정보를 볼 수 있는 버튼이 있다.
Framewark 은 Tensorflow를 사용했고 Reinforcement learning algorithm은 PPO를 사용했다는 정보가 있다.
# Calculate 3 markers that are at varying distances away from the center line marker_1 = 0.1 * track_width marker_2 = 0.25 * track_width marker_3 = 0.5 * track_width
# Give higher reward if the car is closer to center line and vice versa if distance_from_center <= marker_1: reward = 1.0 elif distance_from_center <= marker_2: reward = 0.5 elif distance_from_center <= marker_3: reward = 0.1 else: reward = 1e-3 # likely crashed/ close to off track
return float(reward)
소스코드를 보니 트랙 중앙선 가까이 가면 점수(reward)를 더 많이 주는 간단한 로직이다.
30분 트레이닝 시키고 곧바로 Evaluate 결과는 조금 있다가…
이 첫번째 모델을 clone 해서 두번째 모델을 만들었다. 다 똑같고 reward function 함수만 내가 원하는 대로 조금 바꾸었다.
def reward_function(params): ''' Example of rewarding the agent to follow center line ''' reward=1e-3
if distance_from_center >=0.0 and distance_from_center <= 0.03: reward = 1.0
if not all_wheels_on_track: reward = -1 else: reward = params['progress']
# Steering penality threshold, change the number based on your action space setting ABS_STEERING_THRESHOLD = 15
# Penalize reward if the car is steering too much if steering > ABS_STEERING_THRESHOLD: reward *= 0.8
# add speed penalty if speed < 2.5: reward *=0.80
return float(reward)
이전에 썼던 디폴트 함수와는 다르게 몇가지 조건을 추가 했다. 일단 중앙선을 유지하면 좀 더 점수를 많이 주는 것은 좀 더 간단하게 만들었다. 이 부분은 이전에 훈련을 했으니까 이 정도로 해 주면 되지 않을까? 그리고 아무 바퀴라도 트랙 밖으로 나가면 -1을 하고 모두 트랙 안에 있으면 progress 만큼 reward를 주었다. Progress는 percentage of track completed 이다. 직진해서 결승선에 더 가까이 갈 수록 점수를 더 많이 따도록 했다. 이건 차가 빠꾸하지 않고 곧장 결승점으로 직진 하도록 만들기 위해 넣었다. 그리고 갑자기 핸들을 과하게 돌리면 차가 구르거나 트랙에서 이탈할 확률이 높으니 핸들을 너무 과하게 돌리면 점수가 깎이도록 했다. (15도 이상 핸들을 꺾으면 점수가 깎인다.) 그리고 속도도 너무 천천히 가면 점수를 깎는다.
속도 세팅이 최대 5로 만들어서 그 절반인 2.5 이하고 속도를 줄이면 점수가 깎인다.
이렇게 조건들을 추가하고 Training 시작. 이건 좀 복잡하니 트레이닝 시간을 1시간 주었다.
이 두개의 모델에 대한 결과는…
딱 보니 첫번째 디폴트 함수를 사용했을 때는 시간이 갈수록 결과가 좋게 나왔다. 그런데 두번째는 시간이 갈수록 실력이 높아지지는 않는 것 같다.
너무 조건이 여러개 들어가서 그런가?
생각해 보니 조건을 많이 넣는다고 좋은 것은 아닌것 같다. 일반적으로 코딩을 하다 보면 예외 상황을 만들지 않게 하기 위해 조건들을 아주 많이 주는 경향이 있는데 이 인공지능 쪽은 꼭 조건을 많이 줄 필요는 없을 것 같다.
앞으로 인공지능 쪽을 하다보면 일반 코딩에서의 버릇 중에 고칠 것들이 많을 것 같다. Evaluation 결과를 보면 두개의 차이가 별로 없다. 두 모델 모두 3번중 2번 완주 했고 완주시간도 비슷한 것 같다. 조건을 쪼금 더 준 Model 2 가 좀 더 낫긴 하네. (0.2 ~0.3 초 더 빠르다.) 다음은 곡선이 있는 다른 트랙으로 훈련을 시킬 계획이다.
그런데 곡선이 있는 트랙에서는 스피드가 무조건 빠르다고 좋은 건 아닌 것 같다. 내가 스피드를 5로 주었는데 Clone을 만들어서 할 때는 이 스피드를 조절하지 못하는 것 같다.