ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PM/PO] Hello World, ML편
    하루 한줄 일기/IT 기획자의 잡생각 2022. 3. 16. 17:03

    IT PM 중, hello world 출력해보지 않은 PM 은 없을 것이라고 생각한다. 
    그리고 요새는 막연한 마법과 같은 단어: AI / Machine Learning / Deep Learning 를 어떻게 활용해야하는지 애를 먹는 분들이 많을것이라고 생각한다. 

    나도 막연하게 ML 에 대한 환상이 있는 PM 중에 하나.
    그래서 ML 로 가장 유명한 Tensorflow 가이드를 살펴보기 시작했다. 

    그리고 굉장히 쉽다!  ML의 정체가 궁금하신 분들은 꼭 아래 Tutorial 을 해보시기를. 
    한글이 지원되고, 딱 20분만 소요하면 된다. 

    https://developers.google.com/codelabs/tensorflow-1-helloworld#0

     

    Say hello to the "Hello, World" of machine learning  |  Google Developers

    Learn the basics of creating a neural network and how it can learn the rules that define a behavior.

    developers.google.com


    Youtube by. TensorFlow official
    https://www.youtube.com/watch?v=KNAWp2S3w94&list=PLQY2H8rRoyvwWuPiWnuTDBHe7I0fMSsfO&index=2

     

     

    Rule Based vs. Trained Model with data

     

    Traditional Rule Based

    Machine Learning
    What if you could have a computer learn in the same way that a human does?

     

    개인적인 기록 | ML 을 좀 더 비즈니스에서 활용할 수 있는 방법은 없을까? 

    더보기

    전통적인 룰셋이냐. 불확실하지만 가능성 높은 모델이냐. 
    사실 사람이 하는 것도 굉장히 불확실하다.

     

    이전에 광고 심사 플랫폼을 담당했을 때가 떠오른다.
    그 때의 심사 플랫폼은 크게 3가지로 해부할 수 있다: 자동검수, 사전검수, 사후신고 

    1. 심사속도를 위해 비즈니스 룰셋을 기반으로 자동검수 프로세스가 있다.
    이를 통해 심사위반 확률인 낮은 광고의 심사프로세스를 간소화한다.

    2. 하지만 심사위반 확률이 높거나 심사위반 시 파급효과가 큰 광고에 대해 사전 전수검수 프로세스가 있을 수밖에 없다!

    3. 따라서 사후신고 프로세스가 있다.
    자동검수 프로그램도, 심사자인 인간도 실수를 할 수 있다. 이런 건들은 유저의 신고로 빠르게 노출 제외처리될 수 있다. 
    심지어, 신고 케이스나 새로운 어뷰징 패턴이 발생하면 가이드와 프로세스가 강화된다. 일반인들은 광고대상으로 민감하게 여기는 아젠다와 민감도가 바뀌기도 하고, 때로 일부 광고주가 노출을 증대하기 위해 무리수를 두기도 하기 때문.

     

    10년 전의 광고심사 프로세스는 룰셋기반이었다.
    2022년 지금, 자동검수 프로세스가 ML 기반이었다면 어땠을까?

    전체 광고, 심사결과, 신고여부 를 ML이 학습할 수 있다면?

    심사위반 블랙 키워드를 그렇게 발굴하고 다니지 않았을수도,
    민감한 광고에 대해 숙련된 광고 심사자에게 심사관리자가 아닌 ML 모델이 심사 건을 분배했을 수도 있다. 
    심사 신고 건이 많은 건에 대해서 검토하고 이 요소를 검토할 수 있는 데이터를 추가하여 ML 을 자체적으로 강화해갈 수도 있다. 

    어떻게 ML 을 믿냐? 라는 불신론이 많았다. 

    1. 하지만 모델의 중간 학습값 (피쳐단위일수도 있고. 과정지표 KPI )를 도식화하면 되지 않을까? 
    실제로 ML 내부에도 다양한 층위 (layer) 로 모델을 검토하니까, 이 부분이 조금 더 투명하게, 논리적으로 서술될 수 있다면 더욱 많은 PO 들이 이를 바탕으로 의사결정하는 데에 도움을 줄 것이라고 생각한다.  
    2. 사람도 불완전하다는 것을 한번 더 되새기고, ML 을 강화할 수 있도록 데이터, 프로그램을 관리하는 방향으로 가는 것은 어떨까? 

     

    난 이전부터 ML 을 활용한 곳에서 업무할 경험이 종종 있었다.
    그런것 치고 ML 를 직접 이해하려고 시도해본 것은 비교적 최근이다. (역시 단어가 유행해야...ㅎ) 

    ML 의 활용도는 굉장히 넓은 것으로 보인다:
    위 심사 프로세스와 같이 내 서비스에 대한 업무 프로세스 효율화뿐 아니라  efficiency 
    전통적인 마케팅 활용범위인 연관 검색어, 광고성과지수, 유저 세그먼트 최적화까지 optimality 

    ML 을 좀 더 비즈니스에서 활용할 수 있는 방법은 없을까? 

     

     

    The Hello World of DL with Neural Networks


    직접 ML 계의 Hello World 를 따라해보시기를 바란다. :D 
    ML 의 업무 프로세스는 아래와 같이 딱 5가지이다:

    1. Imports
    2. Define and Compile the Neural Network: optimizer, loss, epochs
    3. Providing the Data
    4. Training the Neural Network
    5. Use the model

    https://colab.research.google.com/github/lmoroney/mlday-tokyo/blob/master/Lab1-Hello-ML-World.ipynb#scrollTo=n_YcWRElnM_b

     

    1. Imports
    impport TensorFlow, numpy, keras.
    The framework for defining a neural network as a set of sequential layers is called keras 

     

    2. Define and Compile the Neural Network 
    It has 1 layer, and that layer has 1 neuron, and the input shape to it is just 1 value. 
    twon functions: optimizer, loss
    - The loss function
    measures the guessed answers against the known correct answers and measures how well or badly it did.
    - The optimizer function to make another guess. Based on the loss function's result, it tries to minimize the loss.
    - The model repeats that for the number of epochs

    Over time, you'll learn the different and appropriate loss and optimizer functions for different scenarios.

     

    3. Providing the Data
    Next up we'll feed in some data.

     

    4. Training the Neural Network
    The next step is to train it to see if it can infer the patterns between those numbers
    and use them to create a model. 

    It will go through the loop, making a guess, measuring how good or bad it is (aka. the loss), 
    using optimizer to make another guess etc for the number of epochs you specify. 

     

    5. Use the model
    You have a model that has been trained to learn the relationship between X and Y. 
    You can use the model.predict method to have it figure out the Y for a previously unknown X.

    As you work with neural networks, you'll see this pattern recurring. You will almost always deal with probabilities, not certainties, and will do a little bit of coding to figure out what the result is based on the probabilities, particularly when it comes to classification.

    댓글

Designed by Tistory.