<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>UnityML-Agents Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<atom:link href="https://lycos7560.com/category/unity/unity-ml-agents/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>생각의 흐름을 타고 다니며 만드는 블로그</description>
	<lastBuildDate>Fri, 10 Feb 2023 08:54:57 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://lycos7560.com/wp-content/uploads/2022/11/cropped-cropped-cropped-log-1-150x150-1-80x80.png</url>
	<title>UnityML-Agents Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Unity ML-Agents 2.0 (Flappy Bird 훈련)</title>
		<link>https://lycos7560.com/unity/unity_ml-agents/2653/</link>
					<comments>https://lycos7560.com/unity/unity_ml-agents/2653/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 14:34:10 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[UnityML-Agents]]></category>
		<category><![CDATA[agents]]></category>
		<category><![CDATA[Bird]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Curriculum]]></category>
		<category><![CDATA[Flappy]]></category>
		<category><![CDATA[GAME]]></category>
		<category><![CDATA[Heuristic]]></category>
		<category><![CDATA[mini]]></category>
		<category><![CDATA[ML-Agents]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[Unity ML-Agents 2.0]]></category>
		<category><![CDATA[머신러닝]]></category>
		<category><![CDATA[인공지능]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=2653</guid>

					<description><![CDATA[<p>Unity의 ML-Agents를 이용하여 간단한 미니게임을 만들어 Flappy Bird를 훈련했습니다.</p>
<p>The post <a href="https://lycos7560.com/unity/unity_ml-agents/2653/">Unity ML-Agents 2.0 (Flappy Bird 훈련)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="6908948342"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Version : Unity 2021.3.5f1</p>



<div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-video"><video height="676" style="aspect-ratio: 1224 / 676;" width="1224" controls src="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_22_51_19_195.mp4"></video></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Unity ML-Agents 2.0 을 이용한 Flappy Bird 훈련</h2>



<p class="has-medium-font-size">ML-Agents 를 이용하여 Flappy Bird 를 교육시켰다.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"> Flappy Bird는 중력의 영향을 받아 아래 계속 떨어지고 점프를 통하여 위쪽으로 가속도를 줄 수 있다.</p>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="857" height="306" src="https://lycos7560.com/wp-content/uploads/image-293.png" alt="" class="wp-image-2655" srcset="https://lycos7560.com/wp-content/uploads/image-293.png 857w, https://lycos7560.com/wp-content/uploads/image-293-300x107.png 300w, https://lycos7560.com/wp-content/uploads/image-293-768x274.png 768w" sizes="(max-width: 857px) 100vw, 857px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">파이프는 배경과 같은 속도로 랜덤하게 나오도록 설계 ( 파이프[위/아래] 사이의 거리는 레벨에 따라 다르다. )</p>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1126" height="944" src="https://lycos7560.com/wp-content/uploads/image-292.png" alt="" class="wp-image-2654" srcset="https://lycos7560.com/wp-content/uploads/image-292.png 1126w, https://lycos7560.com/wp-content/uploads/image-292-300x252.png 300w, https://lycos7560.com/wp-content/uploads/image-292-768x644.png 768w" sizes="(max-width: 1126px) 100vw, 1126px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">점수는 파이프와 파이프 사이에 오프젝트를 만들어 부딛히면 점수를 주고 바닥에 닿거나 파이프에 부딛히면 점수를 깍고 에피소드를 다시 시작한다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="994" height="486" src="https://lycos7560.com/wp-content/uploads/image-294.png" alt="" class="wp-image-2656" srcset="https://lycos7560.com/wp-content/uploads/image-294.png 994w, https://lycos7560.com/wp-content/uploads/image-294-300x147.png 300w, https://lycos7560.com/wp-content/uploads/image-294-768x376.png 768w" sizes="(max-width: 994px) 100vw, 994px" /></figure>



<div style="height:90px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">관측하는 값은 자신의 Y 포지션과 가속도 (음 로컬이 문제인가&#8230;.)</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="882" height="152" src="https://lycos7560.com/wp-content/uploads/image-297.png" alt="" class="wp-image-2660" srcset="https://lycos7560.com/wp-content/uploads/image-297.png 882w, https://lycos7560.com/wp-content/uploads/image-297-300x52.png 300w, https://lycos7560.com/wp-content/uploads/image-297-768x132.png 768w" sizes="(max-width: 882px) 100vw, 882px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">파이프와 파이프 사이의 거리는 커리큘럼 파라미터에 따라 달라진다. (60은 default)</p>



<figure class="wp-block-image size-full"><img decoding="async" width="828" height="117" src="https://lycos7560.com/wp-content/uploads/image-295.png" alt="" class="wp-image-2657" srcset="https://lycos7560.com/wp-content/uploads/image-295.png 828w, https://lycos7560.com/wp-content/uploads/image-295-300x42.png 300w, https://lycos7560.com/wp-content/uploads/image-295-768x109.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></figure>



<div style="height:23px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1118" height="713" src="https://lycos7560.com/wp-content/uploads/image-296.png" alt="" class="wp-image-2658" srcset="https://lycos7560.com/wp-content/uploads/image-296.png 1118w, https://lycos7560.com/wp-content/uploads/image-296-300x191.png 300w, https://lycos7560.com/wp-content/uploads/image-296-768x490.png 768w" sizes="(max-width: 1118px) 100vw, 1118px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">저음 레벨이 낮을 경우에는 학습을 하고 있다고 느낄 정도로 정말 잘하지만 </p>



<p class="has-medium-font-size">점점 가면 갈 수록 학습의 능률이 떨어지고 포기하는 경우의 수가 많아진다.</p>



<p class="has-medium-font-size">아마 인공지능의 컨트롤로 극복할 수 없는 환경이 되어서 포기하는 듯 하다. (내가 플레이 해도 못 깬다 ㅋㅋ )</p>



<p class="has-medium-font-size">Heuristic(휴리스틱-직접 컨트롤, 환경을 테스트 해볼 수 있다.)은 딜레이가 좀 있어서 미세한 컨트롤은 무리&#8230;</p>



<div style="height:23px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="889" height="328" src="https://lycos7560.com/wp-content/uploads/image-300.png" alt="" class="wp-image-2663" srcset="https://lycos7560.com/wp-content/uploads/image-300.png 889w, https://lycos7560.com/wp-content/uploads/image-300-300x111.png 300w, https://lycos7560.com/wp-content/uploads/image-300-768x283.png 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">ML-Agents 를 사용하는 방법이 어렵다기 보다는 환경을 구성하는 부분에서 가장 많은 시간을 잡아먹었다. (교육에는 환경이 중요하다@!)</p>



<p class="has-medium-font-size">이번에 ML-Agent의 기본적인 사용법을 익힌 것이 가장 큰 수확</p>



<div style="height:52px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:79px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1518" height="833" src="https://lycos7560.com/wp-content/uploads/image-298.png" alt="" class="wp-image-2661" srcset="https://lycos7560.com/wp-content/uploads/image-298.png 1518w, https://lycos7560.com/wp-content/uploads/image-298-300x165.png 300w, https://lycos7560.com/wp-content/uploads/image-298-768x421.png 768w" sizes="(max-width: 1518px) 100vw, 1518px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1536" height="787" src="https://lycos7560.com/wp-content/uploads/image-299.png" alt="" class="wp-image-2662" srcset="https://lycos7560.com/wp-content/uploads/image-299.png 1536w, https://lycos7560.com/wp-content/uploads/image-299-300x154.png 300w, https://lycos7560.com/wp-content/uploads/image-299-768x394.png 768w" sizes="(max-width: 1536px) 100vw, 1536px" /></figure>



<div style="height:96px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>커리큘럼 파라미터</strong> (Curriculum Parameter)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">behaviors:
  FlyBird:
    trainer_type: ppo
    hyperparameters:
      batch_size: 256
      buffer_size: 4096
      learning_rate: 0.0003
      beta: 0.005
      epsilon: 0.2
      lambd: 0.95
      num_epoch: 3
      learning_rate_schedule: constant
    network_settings:
      normalize: false
      hidden_units: 256
      num_layers: 2
      vis_encode_type: simple
    reward_signals:
      extrinsic:
        gamma: 0.95
        strength: 1.0
    keep_checkpoints: 5
    max_steps: 9000000
    time_horizon: 128
    summary_freq: 20000
environment_parameters:
  LevelUp:
    curriculum:
      - name: Lesson0
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.10
        value: 100
      - name: Lesson1
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.15
        value: 95
      - name: Lesson2
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.20
        value: 90
      - name: Lesson3
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.25
        value: 85
      - name: Lesson4
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.30
        value: 80
      - name: Lesson5
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.35
        value: 75
      - name: Lesson6
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.4
        value: 70
      - name: Lesson7
        completion_criteria:
          measure: progress
          behavior: FlyBird
          signal_smoothing: true
          min_lesson_length: 100
          threshold: 0.45
        value: 65
      - name: Lesson9
        value: 60</pre>



<div style="height:61px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>BirdAgent.cs</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgents.Sensors;
using Unity.MLAgents.Actuators;
using UnityEngine.Events;

public class BirdAgent : Agent
{
    public GameMain GameMain;
    EnvironmentParameters m_ResetParams;


    public Rigidbody2D rBody; 
    public float jumpForce = 25f;
    private bool Diecheck = false;

    public UnityAction onDIe;

    public override void Initialize()
    {
        m_ResetParams = Academy.Instance.EnvironmentParameters;
        this.rBody = this.gameObject.GetComponent&lt;Rigidbody2D>();
        ConfigureAgent();
    }

    public override void OnEpisodeBegin()
    {
        this.Diecheck = false;
        this.transform.localPosition = new Vector3(-40f, 15f, 0f);

    }

    public override void CollectObservations(VectorSensor sensor)
    {
        sensor.AddObservation(this.gameObject.transform.localPosition.y); // 1
        //sensor.AddObservation(StepCount/MaxStep); // 1
        sensor.AddObservation(this.rBody.velocity.y); // 1
    }

    public override void OnActionReceived(ActionBuffers actions)
    {
        this.AddReward(1 / (float)this.MaxStep);

        var discreteActions = actions.DiscreteActions;

        if (discreteActions[0] == 1)
        {
            this.rBody.velocity = Vector2.up * this.jumpForce;
        }     
    }

    public override void Heuristic(in ActionBuffers actionsOut)
    {
        var discreteActions = actionsOut.DiscreteActions;

        if (Input.GetKey(KeyCode.Space))
        {
            discreteActions[0] = 1;

        }
        else
        {
            discreteActions[0] = 0;
        }
    }



    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Target")
        {
            Debug.Log("Target");
            this.AddReward(0.02f);
            Destroy(collision.gameObject);
        }
        else
        {
            if (!Diecheck)
            {
                this.Diecheck = true;
                AddReward(-0.3f);
                this.onDIe();
                EndEpisode();
            }
        }
    }


    void ConfigureAgent()
    {
       this.GameMain.Level =(int)m_ResetParams.GetWithDefault("LevelUp", 60);
    }

    private void FixedUpdate()
    {
        this.ConfigureAgent();
    }


}</pre>



<div style="height:52px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>GameMain.cs</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class GameMain : MonoBehaviour
{
    public GameObject env; 

    public GameObject pipePrefabs;
    private Pipe pipe;

    public BirdAgent birdAgent;


    public GameObject GroundPrefabs;
    private Ground ground;

    private List&lt;GameObject> pipesList = new List&lt;GameObject>();
    private List&lt;GameObject> GroundList = new List&lt;GameObject>();

    public GameObject backGround;
    private SpriteRenderer backGroundRender;
    public int DieCount = 0;


    public float pipe_groundSpeed = 40f;
    public int Level = 80;
    public float pipeInitTIme = 1.5f;



    private void Awake()
    {
        Application.runInBackground = true;
        StartGameInit();
        this.backGroundRender = this.backGround.GetComponent&lt;SpriteRenderer>();
    }

    void Start()
    {
        StartCoroutine(CreatePipeRoutine());

        this.birdAgent.onDIe = (() => {
            this.DieCount++;
            Debug.Log(this.DieCount);
            this.birdAgent.OnEpisodeBegin();
            // Destroy(birdGO);
            this.StartGameInit();

            StartCoroutine(BackGroundCoroutine());

        });
    }

    public void StartGameInit()
    {
        foreach (var item in this.pipesList)
        {
            if (item != null)
            {
                Destroy(item.gameObject);
            }
        }

        foreach (var item in this.GroundList)
        {
            if (item != null)
            {
                Destroy(item.gameObject);
            }
        }

        this.pipesList = new List&lt;GameObject>();
        this.GroundList = new List&lt;GameObject>();
        
        var groundGO = Instantiate&lt;GameObject>(this.GroundPrefabs);
        groundGO.transform.SetParent(this.env.transform);
        groundGO.transform.localPosition = new Vector3(100f, 10f, -1f);
        this.ground = groundGO.GetComponent&lt;Ground>();
        this.ground.ChangeGroundSpeed(this.pipe_groundSpeed); // 땅 속도 변경
        this.GroundList.Add(groundGO);

        groundGO = Instantiate&lt;GameObject>(this.GroundPrefabs);
        groundGO.transform.SetParent(this.env.transform);

        groundGO.transform.localPosition = new Vector3(312f, 10f, -1f);
        this.ground = groundGO.GetComponent&lt;Ground>();
        this.ground.ChangeGroundSpeed(this.pipe_groundSpeed); // 땅 속도 변경
        this.GroundList.Add(groundGO);
        groundGO = Instantiate&lt;GameObject>(this.GroundPrefabs);
        groundGO.transform.SetParent(this.env.transform);

        groundGO.transform.localPosition = new Vector3(150f, 10f, -1f);
        this.ground = groundGO.GetComponent&lt;Ground>();
        this.ground.ChangeGroundSpeed(this.pipe_groundSpeed); // 땅 속도 변경
        this.GroundList.Add(groundGO);



    }

    private IEnumerator CreatePipeRoutine()
    {

        while (true)
        {
            int num = 150 - this.Level;

            int randfirst = Random.Range(3, num);


            int randsecond = num - randfirst;

            var topGO = Instantiate&lt;GameObject>(this.pipePrefabs);
            topGO.transform.SetParent(this.env.transform);
            this.pipe = topGO.GetComponent&lt;Pipe>();
            this.pipe.SettingPipe(Pipe.eDirType.UP, randfirst);
            this.pipe.removePipe = ((pipe) => {
                pipesList.Remove(pipe); } );
            this.pipe.ChangePipeSpeed(this.pipe_groundSpeed);
            this.pipesList.Add(topGO);
            topGO.transform.localPosition = new Vector3(71f, -22f, -0.5997626f);
            

            topGO = Instantiate&lt;GameObject>(this.pipePrefabs);
            topGO.transform.SetParent(this.env.transform);
            this.pipe = topGO.GetComponent&lt;Pipe>();
            this.pipe.SettingPipe(Pipe.eDirType.Down, randsecond);
            this.pipe.removePipe = ((pipe) => {
                pipesList.Remove(pipe);
            });
            topGO.transform.localPosition = new Vector3(71f, 31f, -0.5997626f);
            this.pipe.ChangePipeSpeed(this.pipe_groundSpeed);
            this.pipesList.Add(topGO);
            yield return new WaitForSeconds(this.pipeInitTIme);

        }
    }

    private IEnumerator BackGroundCoroutine()
    {
        this.backGroundRender.color = new Color(255f, 0, 0f);

        yield return new WaitForSeconds(0.3f);

        this.backGroundRender.color = new Color(255f, 255f, 255f);
    }

}</pre>



<div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>Pipe.cs</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using UnityEngine;
using UnityEngine.Events;

public class Pipe : MonoBehaviour
{
    public enum eDirType { UP = 1, Down = -1 };
    public eDirType dirType = eDirType.UP;
    public int[] arr = { 10, 20, 30, 40, 50, 60, 70, 80, 90 };
    public GameObject headGO;
    public GameObject bodyGO;
    public float moveSpeed = 20;
    public GameObject target;

    public UnityAction&lt;GameObject> removePipe;


    // Update is called once per frame
    void Update()
    {
        this.transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);

        if (this.transform.localPosition.x &lt; -70f)
        {
            removePipe(this.gameObject);
            Destroy(this.gameObject);
        }
    }

    public void SettingPipe(eDirType Type, int rand)
    {
        //rand += level;
        this.dirType = Type;
        var localScale = this.bodyGO.transform.localScale;
        // localScale.y = (int)this.dirType * this.arr[rand];
        localScale.y = (float)this.dirType * rand;
        this.bodyGO.transform.localScale = localScale;
        //this.headGO.transform.localPosition = new Vector3(this.headGO.transform.localPosition.x,
        //(int)this.dirType * ((float)arr[rand]/10) * 3, this.headGO.transform.localPosition.z);
        this.headGO.transform.localPosition = new Vector3(this.headGO.transform.localPosition.x,
        ((((int)this.dirType) * ((float)rand / 10) * 3)) + ((int)this.dirType * 1.5f), this.headGO.transform.localPosition.z);

        if (Type == eDirType.Down)
        {
            Destroy(this.target.gameObject);
        }
        else
        {
            this.target.transform.localPosition = new Vector3(this.headGO.transform.localPosition.x, this.headGO.transform.localPosition.y + 12f, this.headGO.transform.localPosition.z);
        }
    }

    public void ChangePipeSpeed(float speed)
    {
        this.moveSpeed = speed;
    }

}</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>Test.cs</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    public GameObject envPrefabs;
    void Start()
    {
        int x = 0;
        int y = 0;

        for (int i = 0; i &lt; 10; i++)
        {

            Instantiate&lt;GameObject>(this.envPrefabs).transform.position = new Vector3(x, y, 0);

            x += 300;

            if (x >= 1500)
            {
                x = 0;
                y += 300;
            }
        }
    }
}</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/unity/unity_ml-agents/2653/">Unity ML-Agents 2.0 (Flappy Bird 훈련)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/unity/unity_ml-agents/2653/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_22_51_19_195.mp4" length="4475004" type="video/mp4" />

			</item>
		<item>
		<title>Unity ML-Agents 2.0 에피소드 조건, 보상함수, 하이퍼 파라미터 설정</title>
		<link>https://lycos7560.com/unity/unity-ml-agents-2-0-%ec%97%90%ed%94%bc%ec%86%8c%eb%93%9c-%ec%a1%b0%ea%b1%b4-%eb%b3%b4%ec%83%81%ed%95%a8%ec%88%98-%ed%95%98%ec%9d%b4%ed%8d%bc-%ed%8c%8c%eb%9d%bc%eb%af%b8%ed%84%b0-%ec%84%a4%ec%a0%95/2604/</link>
					<comments>https://lycos7560.com/unity/unity-ml-agents-2-0-%ec%97%90%ed%94%bc%ec%86%8c%eb%93%9c-%ec%a1%b0%ea%b1%b4-%eb%b3%b4%ec%83%81%ed%95%a8%ec%88%98-%ed%95%98%ec%9d%b4%ed%8d%bc-%ed%8c%8c%eb%9d%bc%eb%af%b8%ed%84%b0-%ec%84%a4%ec%a0%95/2604/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 12:13:56 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[UnityML-Agents]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[TUTORIAL]]></category>
		<category><![CDATA[Unity ML-Agents 2.0]]></category>
		<category><![CDATA[보상함수]]></category>
		<category><![CDATA[에피소드 조건]]></category>
		<category><![CDATA[유니티]]></category>
		<category><![CDATA[하이퍼 파라미터]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=2604</guid>

					<description><![CDATA[<p>유니티의 ML-Agents 2.0 TUTORIAL 영상을 대략적인 정리한 글입니다. 하이퍼 파라미터의 각 속성에 대하여 간단하게 정리되어 있습니다. (This is a rough summary of UNI.T's ML-Agents 2.0 TUTORIAL video. The properties of the hyperparameters are briefly summarized.)</p>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-%ec%97%90%ed%94%bc%ec%86%8c%eb%93%9c-%ec%a1%b0%ea%b1%b4-%eb%b3%b4%ec%83%81%ed%95%a8%ec%88%98-%ed%95%98%ec%9d%b4%ed%8d%bc-%ed%8c%8c%eb%9d%bc%eb%af%b8%ed%84%b0-%ec%84%a4%ec%a0%95/2604/">Unity ML-Agents 2.0 에피소드 조건, 보상함수, 하이퍼 파라미터 설정</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">유니티의 ML-Agents 2.0 TUTORIAL 영상을 대략적인 정리한 글입니다.</h2>



<p>Version : Unity 2021.3.5f1</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="[유니티 TUTORIAL] 에피소드 조건, 보상함수, 하이퍼 파라미터 설정하기!" width="1778" height="1000" src="https://www.youtube.com/embed/vXhVJYgdVbU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<div style="height:70px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">에피소드의 시작과 끝</h2>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1310" height="752" src="https://lycos7560.com/wp-content/uploads/image-262.png" alt="" class="wp-image-2605" srcset="https://lycos7560.com/wp-content/uploads/image-262.png 1310w, https://lycos7560.com/wp-content/uploads/image-262-300x172.png 300w, https://lycos7560.com/wp-content/uploads/image-262-768x441.png 768w" sizes="(max-width: 1310px) 100vw, 1310px" /></figure>



<div style="height:38px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">(End&amp;Start) 시작과 종료 조건을 사용할 때 고민해봐야할 것&nbsp;</p>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1299" height="334" src="https://lycos7560.com/wp-content/uploads/image-263.png" alt="" class="wp-image-2606" srcset="https://lycos7560.com/wp-content/uploads/image-263.png 1299w, https://lycos7560.com/wp-content/uploads/image-263-300x77.png 300w, https://lycos7560.com/wp-content/uploads/image-263-768x197.png 768w" sizes="(max-width: 1299px) 100vw, 1299px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">초기화 요소가 많을 경우 학습 속도의 저하 / 학습 노이즈를 제공할 수 있다.</p>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1314" height="215" src="https://lycos7560.com/wp-content/uploads/image-264.png" alt="" class="wp-image-2607" srcset="https://lycos7560.com/wp-content/uploads/image-264.png 1314w, https://lycos7560.com/wp-content/uploads/image-264-300x49.png 300w, https://lycos7560.com/wp-content/uploads/image-264-768x126.png 768w" sizes="(max-width: 1314px) 100vw, 1314px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">EndEpisode // OnEpisodeBegin</h2>



<p class="has-medium-font-size">초기화 요소가 적을경우</p>



<p class="has-medium-font-size">3D Ball 예제를 살펴보자</p>



<div style="height:17px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1500" height="793" src="https://lycos7560.com/wp-content/uploads/image-265.png" alt="" class="wp-image-2608" srcset="https://lycos7560.com/wp-content/uploads/image-265.png 1500w, https://lycos7560.com/wp-content/uploads/image-265-300x159.png 300w, https://lycos7560.com/wp-content/uploads/image-265-768x406.png 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></figure>



<div style="height:23px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1364" height="336" src="https://lycos7560.com/wp-content/uploads/image-266.png" alt="" class="wp-image-2609" srcset="https://lycos7560.com/wp-content/uploads/image-266.png 1364w, https://lycos7560.com/wp-content/uploads/image-266-300x74.png 300w, https://lycos7560.com/wp-content/uploads/image-266-768x189.png 768w" sizes="(max-width: 1364px) 100vw, 1364px" /></figure>



<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Hallway 예제</h2>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1346" height="674" src="https://lycos7560.com/wp-content/uploads/image-267.png" alt="" class="wp-image-2610" srcset="https://lycos7560.com/wp-content/uploads/image-267.png 1346w, https://lycos7560.com/wp-content/uploads/image-267-300x150.png 300w, https://lycos7560.com/wp-content/uploads/image-267-768x385.png 768w" sizes="(max-width: 1346px) 100vw, 1346px" /></figure>



<p></p>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1125" height="1035" src="https://lycos7560.com/wp-content/uploads/image-268.png" alt="" class="wp-image-2611" srcset="https://lycos7560.com/wp-content/uploads/image-268.png 1125w, https://lycos7560.com/wp-content/uploads/image-268-300x276.png 300w, https://lycos7560.com/wp-content/uploads/image-268-768x707.png 768w" sizes="(max-width: 1125px) 100vw, 1125px" /></figure>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">&nbsp;Initialize()&nbsp; ==&gt; EndEpisode() =&gt; &nbsp;OnEpisodeBegin() ==&gt; EndEpisode() =&gt; OnEpisodeBegin() &#8230;&#8230;..</p>



<div style="height:141px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">초기화 요소가 많을경우</p>



<p class="has-medium-font-size">OnEpisodeBegin() 을 제거하고 EndEpisode()&nbsp; 다음에 씬전환을 해준다.</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1183" height="359" src="https://lycos7560.com/wp-content/uploads/image-269.png" alt="" class="wp-image-2612" srcset="https://lycos7560.com/wp-content/uploads/image-269.png 1183w, https://lycos7560.com/wp-content/uploads/image-269-300x91.png 300w, https://lycos7560.com/wp-content/uploads/image-269-768x233.png 768w" sizes="(max-width: 1183px) 100vw, 1183px" /></figure>



<div style="height:163px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">보상&nbsp;</h2>



<p class="has-medium-font-size">에이전트가 보상을 받을 수 있도록 해줘야한다.</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1090" height="460" src="https://lycos7560.com/wp-content/uploads/image-270.png" alt="" class="wp-image-2613" srcset="https://lycos7560.com/wp-content/uploads/image-270.png 1090w, https://lycos7560.com/wp-content/uploads/image-270-300x127.png 300w, https://lycos7560.com/wp-content/uploads/image-270-768x324.png 768w" sizes="(max-width: 1090px) 100vw, 1090px" /></figure>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1083" height="604" src="https://lycos7560.com/wp-content/uploads/image-271.png" alt="" class="wp-image-2614" srcset="https://lycos7560.com/wp-content/uploads/image-271.png 1083w, https://lycos7560.com/wp-content/uploads/image-271-300x167.png 300w, https://lycos7560.com/wp-content/uploads/image-271-768x428.png 768w" sizes="(max-width: 1083px) 100vw, 1083px" /></figure>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Addreward 와&nbsp; Setreward 를 잘 사용하자</p>



<div style="height:70px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1084" height="692" src="https://lycos7560.com/wp-content/uploads/image-272.png" alt="" class="wp-image-2615" srcset="https://lycos7560.com/wp-content/uploads/image-272.png 1084w, https://lycos7560.com/wp-content/uploads/image-272-300x192.png 300w, https://lycos7560.com/wp-content/uploads/image-272-768x490.png 768w" sizes="(max-width: 1084px) 100vw, 1084px" /></figure>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">예를 들어 에이전트가 목표와의 거리가 가까워졌는지 판단하고&nbsp; 이를 통해 보상을 주는 방법</p>



<div style="height:44px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1086" height="615" src="https://lycos7560.com/wp-content/uploads/image-273.png" alt="" class="wp-image-2616" srcset="https://lycos7560.com/wp-content/uploads/image-273.png 1086w, https://lycos7560.com/wp-content/uploads/image-273-300x170.png 300w, https://lycos7560.com/wp-content/uploads/image-273-768x435.png 768w" sizes="(max-width: 1086px) 100vw, 1086px" /></figure>



<div style="height:38px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">특정구간 (체크포인트) 를 지날 때마다 점수를 주는방법</p>



<div style="height:73px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="988" height="883" src="https://lycos7560.com/wp-content/uploads/image-274.png" alt="" class="wp-image-2617" srcset="https://lycos7560.com/wp-content/uploads/image-274.png 988w, https://lycos7560.com/wp-content/uploads/image-274-300x268.png 300w, https://lycos7560.com/wp-content/uploads/image-274-768x686.png 768w" sizes="(max-width: 988px) 100vw, 988px" /></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">3D ball 과 환경과 같이 행동을 할때마다 보상을 주는 방법</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1081" height="665" src="https://lycos7560.com/wp-content/uploads/image-275.png" alt="" class="wp-image-2618" srcset="https://lycos7560.com/wp-content/uploads/image-275.png 1081w, https://lycos7560.com/wp-content/uploads/image-275-300x185.png 300w, https://lycos7560.com/wp-content/uploads/image-275-768x472.png 768w" sizes="(max-width: 1081px) 100vw, 1081px" /></figure>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">에이전트가 행동을 할때마다 점수를 감점시키는 방법 등 다양한 방법이 있다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">알고리즘 하이퍼 파라미터 튜닝</h2>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1083" height="429" src="https://lycos7560.com/wp-content/uploads/image-276.png" alt="" class="wp-image-2619" srcset="https://lycos7560.com/wp-content/uploads/image-276.png 1083w, https://lycos7560.com/wp-content/uploads/image-276-300x119.png 300w, https://lycos7560.com/wp-content/uploads/image-276-768x304.png 768w" sizes="(max-width: 1083px) 100vw, 1083px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">참고자료들</p>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-ML-Agents.md" target="_blank" rel="noreferrer noopener">https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-ML-Agents.md</a></p>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-Configuration-File.md">https://github.com/Unity-Technologies/ml-agents/blob/main/docs/</a><a href="https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-Configuration-File.md" target="_blank" rel="noreferrer noopener">Training</a><a href="https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-Configuration-File.md">-Configuration-File.md</a></p>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1092" height="262" src="https://lycos7560.com/wp-content/uploads/image-277.png" alt="" class="wp-image-2620" srcset="https://lycos7560.com/wp-content/uploads/image-277.png 1092w, https://lycos7560.com/wp-content/uploads/image-277-300x72.png 300w, https://lycos7560.com/wp-content/uploads/image-277-768x184.png 768w" sizes="(max-width: 1092px) 100vw, 1092px" /></figure>



<div style="height:160px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="has-medium-font-size wp-block-heading">예제의 Hallway 의 하이퍼 파라미터&nbsp;</h2>



<div style="height:57px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">behaviors:
  Hallway:
    trainer_type: ppo
    hyperparameters:
      batch_size: 128
      buffer_size: 1024
      learning_rate: 0.0003
      beta: 0.03
      epsilon: 0.2
      lambd: 0.95
      num_epoch: 3
      learning_rate_schedule: linear
    network_settings:
      normalize: false
      hidden_units: 128
      num_layers: 2
      vis_encode_type: simple
      memory:
        sequence_length: 64
        memory_size: 128
    reward_signals:
      extrinsic:
        gamma: 0.99
        strength: 1.0
    keep_checkpoints: 5
    max_steps: 10000000
    time_horizon: 64
    summary_freq: 10000</pre>



<div style="height:69px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>behavior Name&nbsp;을 동일하게 설정해야한다.&nbsp;</strong>&nbsp;</p>



<h2 class="wp-block-heading"><strong>traniner_type</strong>&nbsp;</h2>



<p class="has-medium-font-size">: 학습에 필요한 내장 알고리즘을 결정한다.&nbsp;&nbsp;&nbsp;&nbsp;(기본값 : ppo)&nbsp;&nbsp;/ ppo, sac, poca</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1091" height="845" src="https://lycos7560.com/wp-content/uploads/image-278.png" alt="" class="wp-image-2621" srcset="https://lycos7560.com/wp-content/uploads/image-278.png 1091w, https://lycos7560.com/wp-content/uploads/image-278-300x232.png 300w, https://lycos7560.com/wp-content/uploads/image-278-768x595.png 768w" sizes="(max-width: 1091px) 100vw, 1091px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="has-large-font-size wp-block-heading"><strong>batch_size</strong>&nbsp;</h2>



<p class="has-medium-font-size">네트워크를 한번 학습할 때 몇개의 데이터를 사용할지 결정한다.</p>



<p class="has-medium-font-size">&#8211; 일반적인 설정 &#8211;&nbsp; &nbsp;2의 배수로 설정을 추천</p>



<p class="has-medium-font-size">continuous action&nbsp; (128~5120)&nbsp;</p>



<p class="has-medium-font-size">Discrete action&nbsp; (32~512)</p>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1013" height="722" src="https://lycos7560.com/wp-content/uploads/image-279.png" alt="" class="wp-image-2622" srcset="https://lycos7560.com/wp-content/uploads/image-279.png 1013w, https://lycos7560.com/wp-content/uploads/image-279-300x214.png 300w, https://lycos7560.com/wp-content/uploads/image-279-768x547.png 768w" sizes="(max-width: 1013px) 100vw, 1013px" /></figure>



<div style="height:106px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>buffer_size</strong></h2>



<p class="has-medium-font-size">: 정책을 업데이트 하기 전에 수집하는 경험의 데이터의 수</p>



<p class="has-medium-font-size">사이즈가 클수록 안정적인 학습이 가능합니다.</p>



<p class="has-medium-font-size">&#8211; 일반적인 설정 &#8211;&nbsp; &nbsp;</p>



<p class="has-medium-font-size">2의 배수로 설정을 추천 + batch_size 의 배수로 설정</p>



<p class="has-medium-font-size">2048 ~ 409600</p>



<div style="height:146px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>learning_rate</strong></h2>



<p class="has-medium-font-size">: 경사 하강법의 대한 초기학습률&nbsp;</p>



<p class="has-medium-font-size">기본값 = 3e-4&nbsp;( 학습을 위한 초기 학습값 )&nbsp;</p>



<p class="has-medium-font-size">훈련이 불안정하거나 보상이 지속적으로 증가하지 않을 때 값을 줄인다.</p>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="965" height="745" src="https://lycos7560.com/wp-content/uploads/image-280.png" alt="" class="wp-image-2623" srcset="https://lycos7560.com/wp-content/uploads/image-280.png 965w, https://lycos7560.com/wp-content/uploads/image-280-300x232.png 300w, https://lycos7560.com/wp-content/uploads/image-280-768x593.png 768w" sizes="(max-width: 965px) 100vw, 965px" /></figure>



<div style="height:113px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>beta &nbsp;</strong></h2>



<p class="has-medium-font-size">: 정책을 더 무작위로 만드는 엔트로피 값입니다.</p>



<p class="has-medium-font-size">&nbsp;이 값이 높을수록 더 랜덤 행동을 많이 하게 됩니다. ( 많은 탐험 수행 )</p>



<p class="has-medium-font-size">텐서보드에서 아직 학습이 잘되지 않았음에도 불구하고 엔트로피의 값이 너무 빠르게 떨어질경우 이 값을 높여야 합니다.</p>



<p class="has-medium-font-size">&nbsp; 기본값 = 5e-3 &nbsp;( 학습을 위한 초기 학습값 )&nbsp;</p>



<p class="has-medium-font-size">cf &gt; Discrete 환경에서는 엔트로피는 0 이하가 될 수 없지만 계산법의 차이로&nbsp;</p>



<p class="has-medium-font-size">Continuous 환경에서는 엔트로피가 0 보다 작아질 수도 있다.</p>



<p class="has-medium-font-size">본인의 상황에 따라서 텐서 보드를 잘봐야한다.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>epsilon&nbsp;</strong></h2>



<p class="has-medium-font-size">&nbsp;: 정책이 얼마나 빠르게 발전할지 결정합니다.&nbsp; 값을 줄일 수록 더 안정적이지만 학습의 속도가 느리다.</p>



<p class="has-medium-font-size">기본값 = 0.2&nbsp; ( 학습을 위한 초기 학습값, 추천 )&nbsp;</p>



<div style="height:41px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="961" height="626" src="https://lycos7560.com/wp-content/uploads/image-281.png" alt="" class="wp-image-2624" srcset="https://lycos7560.com/wp-content/uploads/image-281.png 961w, https://lycos7560.com/wp-content/uploads/image-281-300x195.png 300w, https://lycos7560.com/wp-content/uploads/image-281-768x500.png 768w" sizes="(max-width: 961px) 100vw, 961px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-Configuration-File.md">https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Training-Configuration-File.md</a>  &lt;- 참고 링크</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1189" height="266" src="https://lycos7560.com/wp-content/uploads/image-282.png" alt="" class="wp-image-2625" srcset="https://lycos7560.com/wp-content/uploads/image-282.png 1189w, https://lycos7560.com/wp-content/uploads/image-282-300x67.png 300w, https://lycos7560.com/wp-content/uploads/image-282-768x172.png 768w" sizes="(max-width: 1189px) 100vw, 1189px" /></figure>



<div style="height:94px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>lambd</strong></h2>



<p class="has-medium-font-size">: 가치 추정에 의존을 할지 아니면 실제 수렴하는 보상에 의존을 할 지 결정하는 값</p>



<p class="has-medium-font-size">&nbsp;값이 작을 떄는 가치 추정에 의존을 하고 값이 높으면 실제 수령하는 보상에 의존한다.</p>



<p class="has-medium-font-size">&#8211; 일반적인 설정 &#8211;&nbsp; &nbsp;</p>



<p class="has-medium-font-size">&nbsp; 0.9 ~0.95&nbsp;</p>



<p class="has-medium-font-size">(미래의 보상을 평가할 때 이전까지의 보상을 기준으로 하는 정도).</p>



<p class="has-medium-font-size">람다값이 적을수록 지금까지의 보상을 기준으로 미래의 보상을 평가하게 됨.</p>



<p class="has-medium-font-size">지금까지의 경향을 유지하는 방향으로 굳어짐.</p>



<div style="height:45px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>num_epoch</strong></h2>



<p class="has-medium-font-size">경험버퍼에 쌓인 데이터에 대하여 학습을 몇번 수행할지 결정합니다.</p>



<p class="has-medium-font-size">batch_size&nbsp;가 커질수록 이 값도 커져야 합니다.</p>



<p class="has-medium-font-size">이 값이 작아지면 안정적으로 학습이 가능하지만 학습속도 는 느려진다.</p>



<p class="has-medium-font-size">기본값 = 3&nbsp; ( 학습을 위한 초기 학습값 )&nbsp;</p>



<p class="has-medium-font-size">learning_rate 와 같이 학습의 안정성에 대한 파라미터</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>learning_rate_schedule</strong></h2>



<p class="has-medium-font-size">:&nbsp; linear(PPO)&nbsp; /&nbsp; constant(SAC) 선택가능</p>



<p class="has-medium-font-size">linear &#8211; MaxStep에 따라 러닝메이트가 감소하면서 학습이 진행됩니다. ( beta 값이 하락 )</p>



<p class="has-medium-font-size">constant &#8211; beta 값이 유지됩니다.</p>



<p class="has-medium-font-size">에피소드의 길이가 긴 환경에 따라 점차 안정적인 학습을 요구하게 되어 베타값이 하락하면서 더 안정적인 학습을 진행</p>



<p class="has-medium-font-size">시간이 변함에 따라 learning rate를 어떻게 변경할지 결정한다.&nbsp;</p>



<p class="has-medium-font-size">/&nbsp; PPO의 경우 max step까지 학습률을 감소시키는 경우 더 안정적으로 학습이 수렴된다.&nbsp;</p>



<p class="has-medium-font-size">/&nbsp; SAC의 경우 전체 학습과정 동안 학습률을 유지하여 자연스럽게 큐 함수값이 수렴할 떄 까지 학습&nbsp;</p>



<figure class="wp-block-image size-full"><img decoding="async" width="639" height="630" src="https://lycos7560.com/wp-content/uploads/image-283.png" alt="" class="wp-image-2626" srcset="https://lycos7560.com/wp-content/uploads/image-283.png 639w, https://lycos7560.com/wp-content/uploads/image-283-300x296.png 300w" sizes="(max-width: 639px) 100vw, 639px" /></figure>



<div style="height:147px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>normalize</strong></h2>



<p>: 벡터 관측 입력을 정규화 할지 결정하는 값으로</p>



<p>단순하거나 Discrete 환경에서는 false</p>



<p>복잡하거나 Continuous 환경에서는 true 사용합니다. (공식적으로) &lt;환경이 단순하면 그냥 false하자 &gt;</p>



<p>(입력되는 벡터 관측값들이 정규화가 되어있는지 물어 보는 것.)</p>



<p>우리가 정규화 시킨 상태에서 true로 설정하면 학습성능이 향상된다.</p>



<div style="height:52px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>hidden_units</strong></h2>



<p>: 인공신경망에 몇개의 유닛을 사용할지 결정을 합니다.</p>



<p>&nbsp; 단순한 환경일 경우 작게 그리고 복잡한 환경일수록 크게 설정</p>



<div style="height:55px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>num_layers</strong></h2>



<p>:&nbsp; 앞서 설정한&nbsp; hidden_units 의 개수를 결정합니다.</p>



<p>&nbsp; &#8211; 일반적인 설정 &#8211;&nbsp; &nbsp;</p>



<p>&nbsp; &nbsp; &nbsp;2</p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1099" height="714" src="https://lycos7560.com/wp-content/uploads/image-284.png" alt="" class="wp-image-2627" srcset="https://lycos7560.com/wp-content/uploads/image-284.png 1099w, https://lycos7560.com/wp-content/uploads/image-284-300x195.png 300w, https://lycos7560.com/wp-content/uploads/image-284-768x499.png 768w" sizes="(max-width: 1099px) 100vw, 1099px" /></figure>



<div style="height:133px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>vis_encode_type</strong></h2>



<p class="has-medium-font-size">: 시각적 관찰을 인코딩하는 인코더 유형</p>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="987" height="347" src="https://lycos7560.com/wp-content/uploads/image-285.png" alt="" class="wp-image-2628" srcset="https://lycos7560.com/wp-content/uploads/image-285.png 987w, https://lycos7560.com/wp-content/uploads/image-285-300x105.png 300w, https://lycos7560.com/wp-content/uploads/image-285-768x270.png 768w" sizes="(max-width: 987px) 100vw, 987px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">기본적으로 simple 20 x 20 을 사용하지만&nbsp; 값을 더 작거나 크게 만들 수 있다.</p>



<div style="height:152px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><strong>reward_signals:</strong><br><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; extrinsic:</strong><br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gamma:&nbsp;</strong><br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strength:&nbsp;</strong></h3>



<div style="height:64px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>gamma</strong></h2>



<p class="has-medium-font-size"><strong>: 보상 신호의 감마는 할인율과 관련한 값입니다.</strong></p>



<p class="has-medium-font-size"><strong>절대 1이 넘지 않아야 하고 값이 클수록 원시안적으로&nbsp;값이 클수록 근시안적으로 에이전트가 행동합니다.&nbsp;</strong></p>



<p class="has-medium-font-size"><strong>값이 너무 클경우 유도하지 않는 행동을 함에도 불구하고 원시안적으로 행동함으로써 학습에 문제가 생긴다.</strong></p>



<p class="has-medium-font-size">(미래의 보상을 현재 평가할 때 적용하는 할인률).</p>



<p class="has-medium-font-size">감마값이 적을수록 먼 미래의 보상을 현재에서는 낮게 평가하기 때문에 즉각적인 보상이 상대적으로 높게 평가 됨.</p>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>strength</strong></h2>



<p class="has-medium-font-size">: 설정한 보상에 곱할 인수&nbsp; 일반적으로&nbsp; 1 로 설정</p>



<div style="height:42px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1120" height="715" src="https://lycos7560.com/wp-content/uploads/image-286.png" alt="" class="wp-image-2629" srcset="https://lycos7560.com/wp-content/uploads/image-286.png 1120w, https://lycos7560.com/wp-content/uploads/image-286-300x192.png 300w, https://lycos7560.com/wp-content/uploads/image-286-768x490.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" /></figure>



<div style="height:128px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>keep_checkpoints</strong></h2>



<p class="has-medium-font-size">: 몇번 학습모델을 저장할지 설정</p>



<p class="has-medium-font-size">10,000,000 / 5 = 2,000,000 스탭마다 저장</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1171" height="118" src="https://lycos7560.com/wp-content/uploads/image-287.png" alt="" class="wp-image-2630" srcset="https://lycos7560.com/wp-content/uploads/image-287.png 1171w, https://lycos7560.com/wp-content/uploads/image-287-300x30.png 300w, https://lycos7560.com/wp-content/uploads/image-287-768x77.png 768w" sizes="(max-width: 1171px) 100vw, 1171px" /></figure>



<div style="height:86px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>max_steps</strong></h2>



<p class="has-medium-font-size">:&nbsp; 이 예제에서 맥스 스탭은 학습이 진행될 최대의 스텝입니다. (복잡할수록 높아야한다.)</p>



<p class="has-medium-font-size">이 값에 도달하게되면 학습이 종료됩니다.</p>



<p class="has-medium-font-size">이 값에 따라서&nbsp; learning rate 가 linear 일 경우&nbsp; beta 값이 감소</p>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1139" height="176" src="https://lycos7560.com/wp-content/uploads/image-288.png" alt="" class="wp-image-2631" srcset="https://lycos7560.com/wp-content/uploads/image-288.png 1139w, https://lycos7560.com/wp-content/uploads/image-288-300x46.png 300w, https://lycos7560.com/wp-content/uploads/image-288-768x119.png 768w" sizes="(max-width: 1139px) 100vw, 1139px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>time_horizon</strong></h2>



<p class="has-medium-font-size">: 경험 버퍼에 저장하기 전에 에이전트가 수집할 경험의 개수입니다.</p>



<p class="has-medium-font-size">에피소드가 끝나지 않고 2스텝에 도달하게 되면 에이전트는 점점 보상을 예측합니다.</p>



<p class="has-medium-font-size">이 값이 클수록 분산이 커지고 작을수록 분산이 작아집니다.</p>



<p class="has-medium-font-size">보상이 잦은 경우에는 작게 설정하는 것이 이상적입니다.</p>



<div style="height:24px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1114" height="234" src="https://lycos7560.com/wp-content/uploads/image-289.png" alt="" class="wp-image-2632" srcset="https://lycos7560.com/wp-content/uploads/image-289.png 1114w, https://lycos7560.com/wp-content/uploads/image-289-300x63.png 300w, https://lycos7560.com/wp-content/uploads/image-289-768x161.png 768w" sizes="(max-width: 1114px) 100vw, 1114px" /></figure>



<div style="height:94px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>summary_freq</strong></h2>



<p class="has-medium-font-size">콘솔에 출력되는 학습의 주기입니다.</p>



<p class="has-medium-font-size">가독성을 키우기 위해 복잡하고 Maxstep이 높은 환경에서는 크게 단순한 환경에서는 작게 설정합니다.</p>



<p class="has-medium-font-size">(학습에 관한 파라미터는 아님)</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1117" height="88" src="https://lycos7560.com/wp-content/uploads/image-290.png" alt="" class="wp-image-2633" srcset="https://lycos7560.com/wp-content/uploads/image-290.png 1117w, https://lycos7560.com/wp-content/uploads/image-290-300x24.png 300w, https://lycos7560.com/wp-content/uploads/image-290-768x61.png 768w" sizes="(max-width: 1117px) 100vw, 1117px" /></figure>



<div style="height:92px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-%ec%97%90%ed%94%bc%ec%86%8c%eb%93%9c-%ec%a1%b0%ea%b1%b4-%eb%b3%b4%ec%83%81%ed%95%a8%ec%88%98-%ed%95%98%ec%9d%b4%ed%8d%bc-%ed%8c%8c%eb%9d%bc%eb%af%b8%ed%84%b0-%ec%84%a4%ec%a0%95/2604/">Unity ML-Agents 2.0 에피소드 조건, 보상함수, 하이퍼 파라미터 설정</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/unity/unity-ml-agents-2-0-%ec%97%90%ed%94%bc%ec%86%8c%eb%93%9c-%ec%a1%b0%ea%b1%b4-%eb%b3%b4%ec%83%81%ed%95%a8%ec%88%98-%ed%95%98%ec%9d%b4%ed%8d%bc-%ed%8c%8c%eb%9d%bc%eb%af%b8%ed%84%b0-%ec%84%a4%ec%a0%95/2604/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Unity ML-Agents 2.0 행동 및 관측 설정</title>
		<link>https://lycos7560.com/unity/unity-ml-agents-2-0-%ed%96%89%eb%8f%99-%eb%b0%8f-%ea%b4%80%ec%b8%a1-%ec%84%a4%ec%a0%95/2573/</link>
					<comments>https://lycos7560.com/unity/unity-ml-agents-2-0-%ed%96%89%eb%8f%99-%eb%b0%8f-%ea%b4%80%ec%b8%a1-%ec%84%a4%ec%a0%95/2573/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 11:35:29 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[UnityML-Agents]]></category>
		<category><![CDATA[agents]]></category>
		<category><![CDATA[ML-Agents]]></category>
		<category><![CDATA[TUTORIAL]]></category>
		<category><![CDATA[Unity ML-Agents 2.0]]></category>
		<category><![CDATA[머신러닝]]></category>
		<category><![CDATA[유니티]]></category>
		<category><![CDATA[인공지능]]></category>
		<category><![CDATA[튜토리얼]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=2573</guid>

					<description><![CDATA[<p>유니티의 ML-Agents 2.0 TUTORIAL 영상을 대략적으로 정리한 글입니다.<br />
행동과 관측의 기본적인 내용이 담겨있습니다. (</p>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-%ed%96%89%eb%8f%99-%eb%b0%8f-%ea%b4%80%ec%b8%a1-%ec%84%a4%ec%a0%95/2573/">Unity ML-Agents 2.0 행동 및 관측 설정</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="6908948342"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">유니티의 ML-Agents 2.0 TUTORIAL 영상을 대략적인 정리한 글입니다.</h2>



<p>Version : Unity 2021.3.5f1</p>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="[유니티 TUTORIAL] ML-Agents 에이전트 행동 및 관측 설정하기!" width="1778" height="1000" src="https://www.youtube.com/embed/GWd4g1qCDxo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">using Unity.MLAgents;</p>



<p class="has-medium-font-size">Agent 를 상속 받는다.</p>



<p class="has-medium-font-size">Agent 가 빨간줄로 표시되면 PackageManger 에서 우측 하단부의 Remove 버튼 대신에 업데이트를 눌러주면 해결된다.</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1041" height="652" src="https://lycos7560.com/wp-content/uploads/image-236.png" alt="" class="wp-image-2574" srcset="https://lycos7560.com/wp-content/uploads/image-236.png 1041w, https://lycos7560.com/wp-content/uploads/image-236-300x188.png 300w, https://lycos7560.com/wp-content/uploads/image-236-768x481.png 768w" sizes="(max-width: 1041px) 100vw, 1041px" /></figure>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1191" height="849" src="https://lycos7560.com/wp-content/uploads/image-237.png" alt="" class="wp-image-2575" srcset="https://lycos7560.com/wp-content/uploads/image-237.png 1191w, https://lycos7560.com/wp-content/uploads/image-237-300x214.png 300w, https://lycos7560.com/wp-content/uploads/image-237-768x547.png 768w" sizes="(max-width: 1191px) 100vw, 1191px" /></figure>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="696" height="929" src="https://lycos7560.com/wp-content/uploads/image-238.png" alt="" class="wp-image-2576" srcset="https://lycos7560.com/wp-content/uploads/image-238.png 696w, https://lycos7560.com/wp-content/uploads/image-238-225x300.png 225w" sizes="(max-width: 696px) 100vw, 696px" /></figure>



<div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Agent를 상속받은 스크립트를 가진 오브젝트는&nbsp;</p>



<p class="has-medium-font-size">Behavior Parameters</p>



<p class="has-medium-font-size">Agent를 상속받은 Script</p>



<p class="has-medium-font-size">Decision Requester</p>



<p class="has-medium-font-size">이 세가지를 필수로 가지고 있어야 한다.</p>



<div style="height:48px" aria-hidden="true" class="wp-block-spacer"></div>



<p>CMD 에서 확인&nbsp;</p>



<p>(디폴트된 런아이들을 사용)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">mlagents-learn --force</pre>



<div style="height:102px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">DiscreteActions&nbsp; :&nbsp; 개별 작업</h2>



<p class="has-medium-font-size">정수를 반환하기 때문에 참 / 거짓 Bool로 구현하기가 쉽고&nbsp;</p>



<p class="has-medium-font-size">특정한 행동에 사용하기가 좋다.</p>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1284" height="357" src="https://lycos7560.com/wp-content/uploads/image-239.png" alt="" class="wp-image-2577" srcset="https://lycos7560.com/wp-content/uploads/image-239.png 1284w, https://lycos7560.com/wp-content/uploads/image-239-300x83.png 300w, https://lycos7560.com/wp-content/uploads/image-239-768x214.png 768w" sizes="(max-width: 1284px) 100vw, 1284px" /></figure>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1286" height="461" src="https://lycos7560.com/wp-content/uploads/image-240.png" alt="" class="wp-image-2578" srcset="https://lycos7560.com/wp-content/uploads/image-240.png 1286w, https://lycos7560.com/wp-content/uploads/image-240-300x108.png 300w, https://lycos7560.com/wp-content/uploads/image-240-768x275.png 768w" sizes="(max-width: 1286px) 100vw, 1286px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1283" height="328" src="https://lycos7560.com/wp-content/uploads/image-241.png" alt="" class="wp-image-2579" srcset="https://lycos7560.com/wp-content/uploads/image-241.png 1283w, https://lycos7560.com/wp-content/uploads/image-241-300x77.png 300w, https://lycos7560.com/wp-content/uploads/image-241-768x196.png 768w" sizes="(max-width: 1283px) 100vw, 1283px" /></figure>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1268" height="700" src="https://lycos7560.com/wp-content/uploads/image-242.png" alt="" class="wp-image-2580" srcset="https://lycos7560.com/wp-content/uploads/image-242.png 1268w, https://lycos7560.com/wp-content/uploads/image-242-300x166.png 300w, https://lycos7560.com/wp-content/uploads/image-242-768x424.png 768w" sizes="(max-width: 1268px) 100vw, 1268px" /></figure>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">public override void OnActionReceived(ActionBuffers actions)
    {
        int Discrete = actions.DiscreteActions[0];
        // Behavior Parameters 컴포넌트에서 Actions - Discreate Branches - Branche 0 size
        // Branche 0 size   2  =  0, 1

        int Discrete2 = actions.DiscreteActions[1];
        // Behavior Parameters 컴포넌트에서 Actions - Discreate Branches - Branche 1 size
        // Branche 1 size   3  =  0, 1, 2 

        int Discrete3 = actions.DiscreteActions[2];
        // Behavior Parameters 컴포넌트에서 Actions - Discreate Branches - Branche 2 size
        // Branche 0 size   5  =  0, 1, 2, 3, 4 

        Debug.LogFormat("Discrete : {0} / Discrete2 : {1} / Discrete3 : {2}", Discrete, Discrete2, Discrete3);

    }</pre>



<div style="height:91px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">ContinuousActions&nbsp; &nbsp;:&nbsp; &nbsp;연속 작업</h2>



<p class="has-medium-font-size">특정 행동보다는 행동의 세기에 적절하게 사용할 수 있다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1287" height="414" src="https://lycos7560.com/wp-content/uploads/image-243.png" alt="" class="wp-image-2581" srcset="https://lycos7560.com/wp-content/uploads/image-243.png 1287w, https://lycos7560.com/wp-content/uploads/image-243-300x97.png 300w, https://lycos7560.com/wp-content/uploads/image-243-768x247.png 768w" sizes="(max-width: 1287px) 100vw, 1287px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1289" height="413" src="https://lycos7560.com/wp-content/uploads/image-244.png" alt="" class="wp-image-2582" srcset="https://lycos7560.com/wp-content/uploads/image-244.png 1289w, https://lycos7560.com/wp-content/uploads/image-244-300x96.png 300w, https://lycos7560.com/wp-content/uploads/image-244-768x246.png 768w" sizes="(max-width: 1289px) 100vw, 1289px" /></figure>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1263" height="458" src="https://lycos7560.com/wp-content/uploads/image-246.png" alt="" class="wp-image-2584" srcset="https://lycos7560.com/wp-content/uploads/image-246.png 1263w, https://lycos7560.com/wp-content/uploads/image-246-300x109.png 300w, https://lycos7560.com/wp-content/uploads/image-246-768x278.png 768w" sizes="(max-width: 1263px) 100vw, 1263px" /></figure>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">public override void OnActionReceived(ActionBuffers actions)
    {
        // Unity Mathf.Clamp(A, b, c) = float A의 값이 float b와 float c 사이의 범위 이외의 값을 넘지 않도록 합니다.

  
        float Continuous1 =  Mathf.Clamp(actions.ContinuousActions[0], -1f, 1f);
        // Behavior Parameters 컴포넌트에서 Actions - Continuous Actions
        // 값 반환 -1f ~ 1f

        float Continuous2 = 2f * Mathf.Clamp(actions.ContinuousActions[1], -1f, 1f);
        // Behavior Parameters 컴포넌트에서 Actions - Continuous Actions
        // 값 반환 -2f ~ 2f

        float Continuous3 = 3f * Mathf.Clamp(actions.ContinuousActions[2], -1f, 1f);
        // Behavior Parameters 컴포넌트에서 Actions - Continuous Actions
        // 값 반환 -3f ~ 3f

        Debug.LogFormat("Continuous1 : {0} / Continuous2 : {1} / Continuous3 : {2}", Continuous1, Continuous2, Continuous3);

        // 값 반환 -1f ~ 1f

    }</pre>



<div style="height:57px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Decision Requester&nbsp; : 결정 주기</h2>



<div style="height:24px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1057" height="197" src="https://lycos7560.com/wp-content/uploads/image-247.png" alt="" class="wp-image-2585" srcset="https://lycos7560.com/wp-content/uploads/image-247.png 1057w, https://lycos7560.com/wp-content/uploads/image-247-300x56.png 300w, https://lycos7560.com/wp-content/uploads/image-247-768x143.png 768w" sizes="(max-width: 1057px) 100vw, 1057px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">우리가 호출한 OnActionReceived 함수가 5번 호출될 때 마다 한번의 액션을 반환하는 설정</p>



<p class="has-medium-font-size">그러나&nbsp;Take Actions Betwwn Decisions 가 체크되어 있으면 동일한 결정을 5번씩 호출</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1312" height="551" src="https://lycos7560.com/wp-content/uploads/image-248.png" alt="" class="wp-image-2586" srcset="https://lycos7560.com/wp-content/uploads/image-248.png 1312w, https://lycos7560.com/wp-content/uploads/image-248-300x126.png 300w, https://lycos7560.com/wp-content/uploads/image-248-768x323.png 768w" sizes="(max-width: 1312px) 100vw, 1312px" /></figure>



<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1311" height="356" src="https://lycos7560.com/wp-content/uploads/image-249.png" alt="" class="wp-image-2587" srcset="https://lycos7560.com/wp-content/uploads/image-249.png 1311w, https://lycos7560.com/wp-content/uploads/image-249-300x81.png 300w, https://lycos7560.com/wp-content/uploads/image-249-768x209.png 768w" sizes="(max-width: 1311px) 100vw, 1311px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Heuristic&nbsp; : 스스로&nbsp;발견하게&nbsp;하는</h2>



<p class="has-medium-font-size">사용자가 직접 입력을 통해서 에이전트를 조정하여 액션 및 환경 메커니즘 등..을 확인 할 수 있습니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1350" height="356" src="https://lycos7560.com/wp-content/uploads/image-250.png" alt="" class="wp-image-2588" srcset="https://lycos7560.com/wp-content/uploads/image-250.png 1350w, https://lycos7560.com/wp-content/uploads/image-250-300x79.png 300w, https://lycos7560.com/wp-content/uploads/image-250-768x203.png 768w" sizes="(max-width: 1350px) 100vw, 1350px" /></figure>



<div style="height:41px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h2 class="wp-block-heading">관찰</h2>



<p class="has-medium-font-size">Vector / Camera / Sensor 를 이용하여 학습</p>



<p class="has-medium-font-size">위치 알려주거나 센서로 탐지 / 카메라를 이용한 이미지 감지는 학습시간이 오래걸린다</p>



<div style="height:24px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1047" height="619" src="https://lycos7560.com/wp-content/uploads/image-251.png" alt="" class="wp-image-2589" srcset="https://lycos7560.com/wp-content/uploads/image-251.png 1047w, https://lycos7560.com/wp-content/uploads/image-251-300x177.png 300w, https://lycos7560.com/wp-content/uploads/image-251-768x454.png 768w" sizes="(max-width: 1047px) 100vw, 1047px" /></figure>



<div style="height:65px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">CollectObservations  :  수집 관찰</h2>



<div style="height:23px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1363" height="604" src="https://lycos7560.com/wp-content/uploads/image-252.png" alt="" class="wp-image-2590" srcset="https://lycos7560.com/wp-content/uploads/image-252.png 1363w, https://lycos7560.com/wp-content/uploads/image-252-300x133.png 300w, https://lycos7560.com/wp-content/uploads/image-252-768x340.png 768w" sizes="(max-width: 1363px) 100vw, 1363px" /></figure>



<div style="height:26px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">관측 개수와&nbsp; Vector Observation &#8211; Space Size 의 크기를 맞추어 준다.</p>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="958" height="252" src="https://lycos7560.com/wp-content/uploads/image-253.png" alt="" class="wp-image-2591" srcset="https://lycos7560.com/wp-content/uploads/image-253.png 958w, https://lycos7560.com/wp-content/uploads/image-253-300x79.png 300w, https://lycos7560.com/wp-content/uploads/image-253-768x202.png 768w" sizes="(max-width: 958px) 100vw, 958px" /></figure>



<div style="height:42px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="has-medium-font-size wp-block-heading">&nbsp;Vector Observation &#8211; Stacked Vectors&nbsp;</h2>



<p class="has-medium-font-size">이전 그리고 그 이전의 Space Size&nbsp;를 기록하는 공간입니다.</p>



<p class="has-medium-font-size">이 경우 전체의 Space Size&nbsp;는 5 * 2&nbsp; =&nbsp; 10&nbsp;</p>



<p class="has-medium-font-size">지금 당장의 관측값만을 사용하는 것이 아닌 이전의 관측값까지 이용하기 위함입니다</p>



<p class="has-medium-font-size">학습이 가능한 공간 범위내로 가장 작게 설정하는 것을 추천합니다.</p>



<div style="height:93px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Ray perceptions Sensor 3D</h2>



<div style="height:26px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1329" height="364" src="https://lycos7560.com/wp-content/uploads/image-254.png" alt="" class="wp-image-2593" srcset="https://lycos7560.com/wp-content/uploads/image-254.png 1329w, https://lycos7560.com/wp-content/uploads/image-254-300x82.png 300w, https://lycos7560.com/wp-content/uploads/image-254-768x210.png 768w" sizes="(max-width: 1329px) 100vw, 1329px" /></figure>



<div style="height:21px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Rays Per Direction&nbsp; &nbsp;방향당&nbsp;광선</p>



<p class="has-medium-font-size">Ray 의 방향당 광선의 수를 조절합니다.</p>



<p class="has-medium-font-size">Ray 의 수가 많을 수록 관측하는 값이 많아집니다.</p>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1300" height="347" src="https://lycos7560.com/wp-content/uploads/image-255.png" alt="" class="wp-image-2594" srcset="https://lycos7560.com/wp-content/uploads/image-255.png 1300w, https://lycos7560.com/wp-content/uploads/image-255-300x80.png 300w, https://lycos7560.com/wp-content/uploads/image-255-768x205.png 768w" sizes="(max-width: 1300px) 100vw, 1300px" /></figure>



<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Max Ray Degrees&nbsp; 최대&nbsp;광선&nbsp;각도</h2>



<p class="has-medium-font-size">광선의 원뿔 크기로 90도를 사용하면 광선이 왼쪽으로 투사됩니다.</p>



<p class="has-medium-font-size">90보다 크면 뒤로 이동합니다.</p>



<p class="has-medium-font-size">값이 60도이면 광선이 중심선의 왼쪽과 오른쪽으로 30도 이상 확산됩니다.</p>



<div style="height:64px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1366" height="328" src="https://lycos7560.com/wp-content/uploads/image-256.png" alt="" class="wp-image-2595" srcset="https://lycos7560.com/wp-content/uploads/image-256.png 1366w, https://lycos7560.com/wp-content/uploads/image-256-300x72.png 300w, https://lycos7560.com/wp-content/uploads/image-256-768x184.png 768w" sizes="(max-width: 1366px) 100vw, 1366px" /></figure>



<h2 class="wp-block-heading">Sphere Cast Radius&nbsp;&nbsp;구면 주조 반지름</h2>



<p>캐스팅할 구의 반경입니다. RayCast 의 경우 0으로 설정합니다.</p>



<div style="height:90px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1470" height="409" src="https://lycos7560.com/wp-content/uploads/image-257.png" alt="" class="wp-image-2596" srcset="https://lycos7560.com/wp-content/uploads/image-257.png 1470w, https://lycos7560.com/wp-content/uploads/image-257-300x83.png 300w, https://lycos7560.com/wp-content/uploads/image-257-768x214.png 768w" sizes="(max-width: 1470px) 100vw, 1470px" /></figure>



<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Ray Length&nbsp; 광선&nbsp;길이</h2>



<p>투사할 광선의 길이를 설정합니다.</p>



<div style="height:102px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1427" height="444" src="https://lycos7560.com/wp-content/uploads/image-258.png" alt="" class="wp-image-2597" srcset="https://lycos7560.com/wp-content/uploads/image-258.png 1427w, https://lycos7560.com/wp-content/uploads/image-258-300x93.png 300w, https://lycos7560.com/wp-content/uploads/image-258-768x239.png 768w" sizes="(max-width: 1427px) 100vw, 1427px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Ray Layer Mask&nbsp; &nbsp;&nbsp;레이 레이어 마스크</h2>



<p class="has-medium-font-size">광선이 닿을 수 있는 레이어를 제어합니다. ( 물체의 레이어가 체크되지 않으면 통과합니다. )</p>



<div style="height:114px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1415" height="537" src="https://lycos7560.com/wp-content/uploads/image-259.png" alt="" class="wp-image-2598" srcset="https://lycos7560.com/wp-content/uploads/image-259.png 1415w, https://lycos7560.com/wp-content/uploads/image-259-300x114.png 300w, https://lycos7560.com/wp-content/uploads/image-259-768x291.png 768w" sizes="(max-width: 1415px) 100vw, 1415px" /></figure>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Detectable tags&nbsp; &nbsp; 감지&nbsp;가능한&nbsp;태그</h2>



<p>감지 가능한 태그 목록을 추가해 줍니다</p>



<div style="height:114px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1171" height="419" src="https://lycos7560.com/wp-content/uploads/image-260.png" alt="" class="wp-image-2599" srcset="https://lycos7560.com/wp-content/uploads/image-260.png 1171w, https://lycos7560.com/wp-content/uploads/image-260-300x107.png 300w, https://lycos7560.com/wp-content/uploads/image-260-768x275.png 768w" sizes="(max-width: 1171px) 100vw, 1171px" /></figure>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Stacked Raycasts&nbsp; 누적된&nbsp;레이캐스트</h2>



<p>신경망에 피드하기 전에 스택되는 레이캐스트 결과 수 입니다.</p>



<p>함께 쌓을 이전 관찰의 수를 지정합니다.</p>



<p>기본값 1은 현재 관측값만 보는 것을 의미합니다.</p>



<div style="height:93px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1472" height="661" src="https://lycos7560.com/wp-content/uploads/image-261.png" alt="" class="wp-image-2600" srcset="https://lycos7560.com/wp-content/uploads/image-261.png 1472w, https://lycos7560.com/wp-content/uploads/image-261-300x135.png 300w, https://lycos7560.com/wp-content/uploads/image-261-768x345.png 768w" sizes="(max-width: 1472px) 100vw, 1472px" /></figure>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Start Vertical Offset&nbsp; &nbsp;&nbsp;<strong>수직 오프셋 시작</strong>&nbsp;</h2>



<p>광선이 Y축을 따라 일부 오프셋에서 시작됨을 의미합니다(즉, 에이전트 중심 위 또는 아래).</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">End Vertical Offset&nbsp; &nbsp;&nbsp;<strong>수직 오프셋 끝</strong></h2>



<p>광선이 Y축을 따라(즉, 수평선 위 또는 아래에서) 약간의 오프셋에서 종료된다는 것을 의미합니다.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5698326622209671"
     data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-%ed%96%89%eb%8f%99-%eb%b0%8f-%ea%b4%80%ec%b8%a1-%ec%84%a4%ec%a0%95/2573/">Unity ML-Agents 2.0 행동 및 관측 설정</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/unity/unity-ml-agents-2-0-%ed%96%89%eb%8f%99-%eb%b0%8f-%ea%b4%80%ec%b8%a1-%ec%84%a4%ec%a0%95/2573/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Unity ML-Agents 2.0 설치 (ml-agents install)</title>
		<link>https://lycos7560.com/unity/unity-ml-agents-2-0-install/2512/</link>
					<comments>https://lycos7560.com/unity/unity-ml-agents-2-0-install/2512/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 11:07:52 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[UnityML-Agents]]></category>
		<category><![CDATA[agents]]></category>
		<category><![CDATA[insatall]]></category>
		<category><![CDATA[ML-Agents]]></category>
		<category><![CDATA[Unity ML-Agents 2.0]]></category>
		<category><![CDATA[머신러닝]]></category>
		<category><![CDATA[인공지능]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=2512</guid>

					<description><![CDATA[<p>Unity ML-Agents 2.0 설치에 관한 글입니다,</p>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-install/2512/">Unity ML-Agents 2.0 설치 (ml-agents install)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Unity ML-Agents 2.0 설치 따라하기</h2>



<div style="height:42px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Version : Unity 2021.3.5f1</p>



<p class="has-medium-font-size">Unity ML-Agents 2.0을 설치를 기록한 글입니다. 에이전트의 버전이 바뀌면 설치법이 달라질 수 있습니다. </p>



<p class="has-medium-font-size">(This article records the installation of Unity ML-Agent 2.0. If the version of the agent changes, the installation method may change.)</p>



<p class="has-medium-font-size">항상 유니티에서 제공하는 공식 문서를 확인하세요</p>



<div style="height:34px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><a href="https://unity.com/kr/products/machine-learning-agents" target="_blank" rel="noreferrer noopener">https://unity.com/kr/products/machine-learning-agents</a>  &lt;- 공식 사이트</p>



<div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:0px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="유니티 최신버전 ml-agents2.0 설치하고 예제해보기" width="1778" height="1000" src="https://www.youtube.com/embed/_wDTWexFLwY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">홈페이지에서 Github에서 다운로드 클릭</p>



<div style="height:42px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1305" height="674" src="https://lycos7560.com/wp-content/uploads/image-185.png" alt="" class="wp-image-2513" srcset="https://lycos7560.com/wp-content/uploads/image-185.png 1305w, https://lycos7560.com/wp-content/uploads/image-185-300x155.png 300w, https://lycos7560.com/wp-content/uploads/image-185-768x397.png 768w" sizes="(max-width: 1305px) 100vw, 1305px" /></figure>



<div style="height:41px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Github에서 파일을 받아줍니다.</p>



<p class="has-medium-font-size">다운받은 프로젝트의 파일(ml-agents-main)을 프로젝트 폴더에 넣어줍니다.</p>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1308" height="574" src="https://lycos7560.com/wp-content/uploads/image-186.png" alt="" class="wp-image-2514" srcset="https://lycos7560.com/wp-content/uploads/image-186.png 1308w, https://lycos7560.com/wp-content/uploads/image-186-300x132.png 300w, https://lycos7560.com/wp-content/uploads/image-186-768x337.png 768w" sizes="(max-width: 1308px) 100vw, 1308px" /></figure>



<div style="height:58px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">최신버전 문서를 확인</p>



<div style="height:44px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1378" height="1018" src="https://lycos7560.com/wp-content/uploads/image-187.png" alt="" class="wp-image-2515" srcset="https://lycos7560.com/wp-content/uploads/image-187.png 1378w, https://lycos7560.com/wp-content/uploads/image-187-300x222.png 300w, https://lycos7560.com/wp-content/uploads/image-187-768x567.png 768w" sizes="(max-width: 1378px) 100vw, 1378px" /></figure>



<div style="height:63px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">문서에서 Installation 확인</p>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1315" height="962" src="https://lycos7560.com/wp-content/uploads/image-188.png" alt="" class="wp-image-2516" srcset="https://lycos7560.com/wp-content/uploads/image-188.png 1315w, https://lycos7560.com/wp-content/uploads/image-188-300x219.png 300w, https://lycos7560.com/wp-content/uploads/image-188-768x562.png 768w" sizes="(max-width: 1315px) 100vw, 1315px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">유니티 버전과 파이썬 버젼을 확인합니다.</p>



<p class="has-medium-font-size">파이썬도 필요하니 설치해줍니다.</p>



<div style="height:59px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1147" height="933" src="https://lycos7560.com/wp-content/uploads/image-189.png" alt="" class="wp-image-2517" srcset="https://lycos7560.com/wp-content/uploads/image-189.png 1147w, https://lycos7560.com/wp-content/uploads/image-189-300x244.png 300w, https://lycos7560.com/wp-content/uploads/image-189-768x625.png 768w" sizes="(max-width: 1147px) 100vw, 1147px" /></figure>



<div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">최신 버전도 좋지만 영상을 따라서 3.6.2 버전을 설치해줍니다.</p>



<div style="height:51px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1098" height="925" src="https://lycos7560.com/wp-content/uploads/image-190.png" alt="" class="wp-image-2518" srcset="https://lycos7560.com/wp-content/uploads/image-190.png 1098w, https://lycos7560.com/wp-content/uploads/image-190-300x253.png 300w, https://lycos7560.com/wp-content/uploads/image-190-768x647.png 768w" sizes="(max-width: 1098px) 100vw, 1098px" /></figure>



<div style="height:58px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Windows x86-64 web-based installer 설치</p>



<div style="height:53px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1111" height="445" src="https://lycos7560.com/wp-content/uploads/image-191.png" alt="" class="wp-image-2519" srcset="https://lycos7560.com/wp-content/uploads/image-191.png 1111w, https://lycos7560.com/wp-content/uploads/image-191-300x120.png 300w, https://lycos7560.com/wp-content/uploads/image-191-768x308.png 768w" sizes="(max-width: 1111px) 100vw, 1111px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Add Python to 3.6 PATH 선택</p>



<p class="has-medium-font-size">강의를 따라서 Customize installation&nbsp;&nbsp;</p>



<p class="has-medium-font-size">C:\ 에 Python 폴더를 생성 내부에 3.6.2 폴더를 또 생성하고 그 위치에 설치</p>



<div style="height:61px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1746" height="765" src="https://lycos7560.com/wp-content/uploads/image-192.png" alt="" class="wp-image-2520" srcset="https://lycos7560.com/wp-content/uploads/image-192.png 1746w, https://lycos7560.com/wp-content/uploads/image-192-300x131.png 300w, https://lycos7560.com/wp-content/uploads/image-192-768x336.png 768w, https://lycos7560.com/wp-content/uploads/image-192-1536x673.png 1536w" sizes="(max-width: 1746px) 100vw, 1746px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">설치가 완료된 후에 CMD 창을 열어서 python &#8211;version 입력</p>



<p class="has-medium-font-size">나는 관리자 권한으로 실행</p>



<div style="height:26px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1735" height="589" src="https://lycos7560.com/wp-content/uploads/image-193.png" alt="" class="wp-image-2521" srcset="https://lycos7560.com/wp-content/uploads/image-193.png 1735w, https://lycos7560.com/wp-content/uploads/image-193-300x102.png 300w, https://lycos7560.com/wp-content/uploads/image-193-768x261.png 768w, https://lycos7560.com/wp-content/uploads/image-193-1536x521.png 1536w" sizes="(max-width: 1735px) 100vw, 1735px" /></figure>



<div style="height:26px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">시스템 환경 변수 편집 실행</p>



<p class="has-medium-font-size">건드릴 부분은 없고 설치를 확인하는 절차 입니다.</p>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1125" height="384" src="https://lycos7560.com/wp-content/uploads/image-194.png" alt="" class="wp-image-2522" srcset="https://lycos7560.com/wp-content/uploads/image-194.png 1125w, https://lycos7560.com/wp-content/uploads/image-194-300x102.png 300w, https://lycos7560.com/wp-content/uploads/image-194-768x262.png 768w" sizes="(max-width: 1125px) 100vw, 1125px" /></figure>



<div style="height:73px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1223" height="590" src="https://lycos7560.com/wp-content/uploads/image-195.png" alt="" class="wp-image-2523" srcset="https://lycos7560.com/wp-content/uploads/image-195.png 1223w, https://lycos7560.com/wp-content/uploads/image-195-300x145.png 300w, https://lycos7560.com/wp-content/uploads/image-195-768x370.png 768w" sizes="(max-width: 1223px) 100vw, 1223px" /></figure>



<div style="height:79px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1030" height="265" src="https://lycos7560.com/wp-content/uploads/image-196.png" alt="" class="wp-image-2524" srcset="https://lycos7560.com/wp-content/uploads/image-196.png 1030w, https://lycos7560.com/wp-content/uploads/image-196-300x77.png 300w, https://lycos7560.com/wp-content/uploads/image-196-768x198.png 768w" sizes="(max-width: 1030px) 100vw, 1030px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">유니티에서 ml agent 프로젝트를 불러온다.</p>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1101" height="484" src="https://lycos7560.com/wp-content/uploads/image-197.png" alt="" class="wp-image-2525" srcset="https://lycos7560.com/wp-content/uploads/image-197.png 1101w, https://lycos7560.com/wp-content/uploads/image-197-300x132.png 300w, https://lycos7560.com/wp-content/uploads/image-197-768x338.png 768w" sizes="(max-width: 1101px) 100vw, 1101px" /></figure>



<div style="height:74px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">해당 프로젝트와 내가 사용하는 버젼이 다르다는 뜻 Choose&nbsp;another&nbsp;Editor&nbsp;version&nbsp;을&nbsp;누르고</p>



<p class="has-medium-font-size">내 유니티 버전으로 변경해준다.</p>



<div style="height:68px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1032" height="370" src="https://lycos7560.com/wp-content/uploads/image-198.png" alt="" class="wp-image-2526" srcset="https://lycos7560.com/wp-content/uploads/image-198.png 1032w, https://lycos7560.com/wp-content/uploads/image-198-300x108.png 300w, https://lycos7560.com/wp-content/uploads/image-198-768x275.png 768w" sizes="(max-width: 1032px) 100vw, 1032px" /></figure>



<div style="height:88px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1554" height="448" src="https://lycos7560.com/wp-content/uploads/image-199.png" alt="" class="wp-image-2527" srcset="https://lycos7560.com/wp-content/uploads/image-199.png 1554w, https://lycos7560.com/wp-content/uploads/image-199-300x86.png 300w, https://lycos7560.com/wp-content/uploads/image-199-768x221.png 768w, https://lycos7560.com/wp-content/uploads/image-199-1536x443.png 1536w" sizes="(max-width: 1554px) 100vw, 1554px" /></figure>



<div style="height:71px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1258" height="382" src="https://lycos7560.com/wp-content/uploads/image-200.png" alt="" class="wp-image-2528" srcset="https://lycos7560.com/wp-content/uploads/image-200.png 1258w, https://lycos7560.com/wp-content/uploads/image-200-300x91.png 300w, https://lycos7560.com/wp-content/uploads/image-200-768x233.png 768w" sizes="(max-width: 1258px) 100vw, 1258px" /></figure>



<div style="height:64px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">버전이 다르다고 하는데 continue 로 넘겨주고 기다려준다.</p>



<p class="has-medium-font-size">열리는 동안 아까 열어둔 CMD 창에서 PyTorch를 설치한다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html</pre>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Installation.md" target="_blank" rel="noreferrer noopener">https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Installation.md</a>  &lt;- 링크</p>



<div style="height:34px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1302" height="313" src="https://lycos7560.com/wp-content/uploads/image-201.png" alt="" class="wp-image-2529" srcset="https://lycos7560.com/wp-content/uploads/image-201.png 1302w, https://lycos7560.com/wp-content/uploads/image-201-300x72.png 300w, https://lycos7560.com/wp-content/uploads/image-201-768x185.png 768w" sizes="(max-width: 1302px) 100vw, 1302px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1671" height="962" src="https://lycos7560.com/wp-content/uploads/image-202.png" alt="" class="wp-image-2530" srcset="https://lycos7560.com/wp-content/uploads/image-202.png 1671w, https://lycos7560.com/wp-content/uploads/image-202-300x173.png 300w, https://lycos7560.com/wp-content/uploads/image-202-768x442.png 768w, https://lycos7560.com/wp-content/uploads/image-202-1536x884.png 1536w" sizes="(max-width: 1671px) 100vw, 1671px" /></figure>



<div style="height:58px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1416" height="340" src="https://lycos7560.com/wp-content/uploads/image-203.png" alt="" class="wp-image-2531" srcset="https://lycos7560.com/wp-content/uploads/image-203.png 1416w, https://lycos7560.com/wp-content/uploads/image-203-300x72.png 300w, https://lycos7560.com/wp-content/uploads/image-203-768x184.png 768w" sizes="(max-width: 1416px) 100vw, 1416px" /></figure>



<div style="height:63px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1299" height="722" src="https://lycos7560.com/wp-content/uploads/image-204.png" alt="" class="wp-image-2532" srcset="https://lycos7560.com/wp-content/uploads/image-204.png 1299w, https://lycos7560.com/wp-content/uploads/image-204-300x167.png 300w, https://lycos7560.com/wp-content/uploads/image-204-768x427.png 768w" sizes="(max-width: 1299px) 100vw, 1299px" /></figure>



<div style="height:53px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">완료!</p>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">ml-agents 도 설치해주자</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python -m pip install mlagents==0.28.0</pre>



<div style="height:63px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1750" height="881" src="https://lycos7560.com/wp-content/uploads/image-205.png" alt="" class="wp-image-2533" srcset="https://lycos7560.com/wp-content/uploads/image-205.png 1750w, https://lycos7560.com/wp-content/uploads/image-205-300x151.png 300w, https://lycos7560.com/wp-content/uploads/image-205-768x387.png 768w, https://lycos7560.com/wp-content/uploads/image-205-1536x773.png 1536w" sizes="(max-width: 1750px) 100vw, 1750px" /></figure>



<div style="height:84px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1831" height="654" src="https://lycos7560.com/wp-content/uploads/image-206.png" alt="" class="wp-image-2534" srcset="https://lycos7560.com/wp-content/uploads/image-206.png 1831w, https://lycos7560.com/wp-content/uploads/image-206-300x107.png 300w, https://lycos7560.com/wp-content/uploads/image-206-768x274.png 768w, https://lycos7560.com/wp-content/uploads/image-206-1536x549.png 1536w" sizes="(max-width: 1831px) 100vw, 1831px" /></figure>



<div style="height:67px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">pip 버전이 낮으므로 업그레이드 해주자 ( pip는 unity의 asset store 와 비슷하다 )</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python -m pip install --upgrade pip</pre>



<div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">다시&nbsp; ml-agents&nbsp; 설치</p>



<div style="height:57px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1846" height="646" src="https://lycos7560.com/wp-content/uploads/image-207.png" alt="" class="wp-image-2535" srcset="https://lycos7560.com/wp-content/uploads/image-207.png 1846w, https://lycos7560.com/wp-content/uploads/image-207-300x105.png 300w, https://lycos7560.com/wp-content/uploads/image-207-768x269.png 768w, https://lycos7560.com/wp-content/uploads/image-207-1536x538.png 1536w" sizes="(max-width: 1846px) 100vw, 1846px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1629" height="238" src="https://lycos7560.com/wp-content/uploads/image-208.png" alt="" class="wp-image-2536" srcset="https://lycos7560.com/wp-content/uploads/image-208.png 1629w, https://lycos7560.com/wp-content/uploads/image-208-300x44.png 300w, https://lycos7560.com/wp-content/uploads/image-208-768x112.png 768w, https://lycos7560.com/wp-content/uploads/image-208-1536x224.png 1536w" sizes="(max-width: 1629px) 100vw, 1629px" /></figure>



<div style="height:65px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1746" height="852" src="https://lycos7560.com/wp-content/uploads/image-209.png" alt="" class="wp-image-2537" srcset="https://lycos7560.com/wp-content/uploads/image-209.png 1746w, https://lycos7560.com/wp-content/uploads/image-209-300x146.png 300w, https://lycos7560.com/wp-content/uploads/image-209-768x375.png 768w, https://lycos7560.com/wp-content/uploads/image-209-1536x750.png 1536w" sizes="(max-width: 1746px) 100vw, 1746px" /></figure>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">강의 영상과는 약간 다르다</p>



<p class="has-large-font-size">완료!</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">자 이제 직접 훈련을 시켜보자</h1>



<div style="height:41px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">제 아래의 Getting Started 를 눌러보자</p>



<div style="height:52px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1413" height="1013" src="https://lycos7560.com/wp-content/uploads/image-210.png" alt="" class="wp-image-2538" srcset="https://lycos7560.com/wp-content/uploads/image-210.png 1413w, https://lycos7560.com/wp-content/uploads/image-210-300x215.png 300w, https://lycos7560.com/wp-content/uploads/image-210-768x551.png 768w" sizes="(max-width: 1413px) 100vw, 1413px" /></figure>



<div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1602" height="804" src="https://lycos7560.com/wp-content/uploads/image-212.png" alt="" class="wp-image-2540" srcset="https://lycos7560.com/wp-content/uploads/image-212.png 1602w, https://lycos7560.com/wp-content/uploads/image-212-300x151.png 300w, https://lycos7560.com/wp-content/uploads/image-212-768x385.png 768w, https://lycos7560.com/wp-content/uploads/image-212-1536x771.png 1536w" sizes="(max-width: 1602px) 100vw, 1602px" /></figure>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">이제 열린 유니티 프로젝트에 3DBall 씬을 열어보자&nbsp;</p>



<p class="has-medium-font-size">그리고 플레이</p>



<p class="has-medium-font-size">이미 학습되어진 아이들이 작동되고 있다.</p>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1920" height="781" src="https://lycos7560.com/wp-content/uploads/image-214.png" alt="" class="wp-image-2542" srcset="https://lycos7560.com/wp-content/uploads/image-214.png 1920w, https://lycos7560.com/wp-content/uploads/image-214-300x122.png 300w, https://lycos7560.com/wp-content/uploads/image-214-768x313.png 768w, https://lycos7560.com/wp-content/uploads/image-214-1536x625.png 1536w, https://lycos7560.com/wp-content/uploads/image-214-2048x834.png 2048w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<div style="height:79px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-video"><video height="604" style="aspect-ratio: 1032 / 604;" width="1032" controls src="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_43_15_634.mp4"></video></figure>



<div style="height:55px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">이제 학습을 시켜보기 위해서 한마리만 빼고 비활성화해주자</p>



<div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1527" height="473" src="https://lycos7560.com/wp-content/uploads/image-215.png" alt="" class="wp-image-2544" srcset="https://lycos7560.com/wp-content/uploads/image-215.png 1527w, https://lycos7560.com/wp-content/uploads/image-215-300x93.png 300w, https://lycos7560.com/wp-content/uploads/image-215-768x238.png 768w" sizes="(max-width: 1527px) 100vw, 1527px" /></figure>



<div style="height:59px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="830" height="570" src="https://lycos7560.com/wp-content/uploads/image-216.png" alt="" class="wp-image-2545" srcset="https://lycos7560.com/wp-content/uploads/image-216.png 830w, https://lycos7560.com/wp-content/uploads/image-216-300x206.png 300w, https://lycos7560.com/wp-content/uploads/image-216-768x527.png 768w" sizes="(max-width: 830px) 100vw, 830px" /></figure>



<div style="height:58px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Getting-Started.md" target="_blank" rel="noreferrer noopener">https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Getting-Started.md</a></p>



<div style="height:24px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1313" height="329" src="https://lycos7560.com/wp-content/uploads/image-217.png" alt="" class="wp-image-2546" srcset="https://lycos7560.com/wp-content/uploads/image-217.png 1313w, https://lycos7560.com/wp-content/uploads/image-217-300x75.png 300w, https://lycos7560.com/wp-content/uploads/image-217-768x192.png 768w" sizes="(max-width: 1313px) 100vw, 1313px" /></figure>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">Getting-Started 아래쪽에보면 훈련관련 명령어가 있다.</p>



<p class="has-medium-font-size">우리는 이것을 사용한다.</p>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1414" height="690" src="https://lycos7560.com/wp-content/uploads/image-218.png" alt="" class="wp-image-2547" srcset="https://lycos7560.com/wp-content/uploads/image-218.png 1414w, https://lycos7560.com/wp-content/uploads/image-218-300x146.png 300w, https://lycos7560.com/wp-content/uploads/image-218-768x375.png 768w" sizes="(max-width: 1414px) 100vw, 1414px" /></figure>



<div style="height:61px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">아까 받은 파일인 ml-agents-main 에서&nbsp; 3DBall.yaml 이 있는 것을 확인한다.</p>



<p class="has-medium-font-size">ml-agents-main\ml-agents-main\config\ppo</p>



<p class="has-medium-font-size">윈도우 폴더 옵션에서 숨김파일, 폴더 및 드라이브 표시 체크</p>



<p class="has-medium-font-size">알려진 파일 형식의 파일 확장명 숨기기 해제</p>



<p class="has-medium-font-size">를 해주는 것을 추천한다.</p>



<div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1415" height="775" src="https://lycos7560.com/wp-content/uploads/image-219.png" alt="" class="wp-image-2548" srcset="https://lycos7560.com/wp-content/uploads/image-219.png 1415w, https://lycos7560.com/wp-content/uploads/image-219-300x164.png 300w, https://lycos7560.com/wp-content/uploads/image-219-768x421.png 768w" sizes="(max-width: 1415px) 100vw, 1415px" /></figure>



<div style="height:85px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1545" height="913" src="https://lycos7560.com/wp-content/uploads/image-220.png" alt="" class="wp-image-2549" srcset="https://lycos7560.com/wp-content/uploads/image-220.png 1545w, https://lycos7560.com/wp-content/uploads/image-220-300x177.png 300w, https://lycos7560.com/wp-content/uploads/image-220-768x454.png 768w, https://lycos7560.com/wp-content/uploads/image-220-1536x908.png 1536w" sizes="(max-width: 1545px) 100vw, 1545px" /></figure>



<div style="height:59px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">cmd 창을 열고 ppo 위치로 이동하자</p>



<p class="has-medium-font-size">cd&nbsp; 폴더위치&nbsp; 를 이용하면 편하다</p>



<p class="has-medium-font-size">dir로 폴더 내부의 파일이 있는지 확인 하자</p>



<div style="height:52px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1350" height="965" src="https://lycos7560.com/wp-content/uploads/image-221.png" alt="" class="wp-image-2550" srcset="https://lycos7560.com/wp-content/uploads/image-221.png 1350w, https://lycos7560.com/wp-content/uploads/image-221-300x214.png 300w, https://lycos7560.com/wp-content/uploads/image-221-768x549.png 768w" sizes="(max-width: 1350px) 100vw, 1350px" /></figure>



<div style="height:87px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">이제 명령어로 학습을 시켜보자&nbsp;</p>



<p class="has-medium-font-size">mlagents-learn&nbsp;config/ppo/3DBall.yaml&nbsp;&#8211;run-id=first3DBallRun</p>



<p class="has-medium-font-size">ppo 위치에 있으므로 명령어를 바꾸어서 입력했다.</p>



<p class="has-medium-font-size">mlagents-learn&nbsp;3DBall.yaml&nbsp;&#8211;run-id=first3DBallRun</p>



<p class="has-medium-font-size">그리고 유니티를 플레이 해준다.</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1474" height="608" src="https://lycos7560.com/wp-content/uploads/image-222.png" alt="" class="wp-image-2551" srcset="https://lycos7560.com/wp-content/uploads/image-222.png 1474w, https://lycos7560.com/wp-content/uploads/image-222-300x124.png 300w, https://lycos7560.com/wp-content/uploads/image-222-768x317.png 768w" sizes="(max-width: 1474px) 100vw, 1474px" /></figure>



<div style="height:75px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1591" height="578" src="https://lycos7560.com/wp-content/uploads/image-223.png" alt="" class="wp-image-2552" srcset="https://lycos7560.com/wp-content/uploads/image-223.png 1591w, https://lycos7560.com/wp-content/uploads/image-223-300x109.png 300w, https://lycos7560.com/wp-content/uploads/image-223-768x279.png 768w, https://lycos7560.com/wp-content/uploads/image-223-1536x558.png 1536w" sizes="(max-width: 1591px) 100vw, 1591px" /></figure>



<div style="height:79px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1490" height="905" src="https://lycos7560.com/wp-content/uploads/image-224.png" alt="" class="wp-image-2553" srcset="https://lycos7560.com/wp-content/uploads/image-224.png 1490w, https://lycos7560.com/wp-content/uploads/image-224-300x182.png 300w, https://lycos7560.com/wp-content/uploads/image-224-768x466.png 768w" sizes="(max-width: 1490px) 100vw, 1490px" /></figure>



<div style="height:46px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size">훈련중!@!</p>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1092" height="966" src="https://lycos7560.com/wp-content/uploads/image-225.png" alt="" class="wp-image-2554" srcset="https://lycos7560.com/wp-content/uploads/image-225.png 1092w, https://lycos7560.com/wp-content/uploads/image-225-300x265.png 300w, https://lycos7560.com/wp-content/uploads/image-225-768x679.png 768w" sizes="(max-width: 1092px) 100vw, 1092px" /></figure>



<div style="height:71px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-video"><video height="604" style="aspect-ratio: 1032 / 604;" width="1032" controls src="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_45_07_206.mp4"></video></figure>



<div style="height:67px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">훈련 종료는 CTRL + C 버튼으로 종료&nbsp;</p>



<p class="has-medium-font-size">응답이 없을 시에는 엔터 몇 번 치고&nbsp; CTRL + C 를 입력하면 된다.</p>



<div style="height:93px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1080" height="223" src="https://lycos7560.com/wp-content/uploads/image-226.png" alt="" class="wp-image-2558" srcset="https://lycos7560.com/wp-content/uploads/image-226.png 1080w, https://lycos7560.com/wp-content/uploads/image-226-300x62.png 300w, https://lycos7560.com/wp-content/uploads/image-226-768x159.png 768w" sizes="(max-width: 1080px) 100vw, 1080px" /></figure>



<div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">훈련 결과 파일 onnx를 확인 할 수 있습니다.</p>



<p class="has-medium-font-size">그리고 그 파일을 유니티에 넣어줍니다.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1129" height="1094" src="https://lycos7560.com/wp-content/uploads/image-227.png" alt="" class="wp-image-2559" srcset="https://lycos7560.com/wp-content/uploads/image-227.png 1129w, https://lycos7560.com/wp-content/uploads/image-227-300x291.png 300w, https://lycos7560.com/wp-content/uploads/image-227-768x744.png 768w" sizes="(max-width: 1129px) 100vw, 1129px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1201" height="401" src="https://lycos7560.com/wp-content/uploads/image-228.png" alt="" class="wp-image-2560" srcset="https://lycos7560.com/wp-content/uploads/image-228.png 1201w, https://lycos7560.com/wp-content/uploads/image-228-300x100.png 300w, https://lycos7560.com/wp-content/uploads/image-228-768x256.png 768w" sizes="(max-width: 1201px) 100vw, 1201px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>그 다음 훈련한 파일을 agent에 넣어줍니다.</p>



<p>그리고 플레이 해줍니다.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1155" height="674" src="https://lycos7560.com/wp-content/uploads/image-229.png" alt="" class="wp-image-2561" srcset="https://lycos7560.com/wp-content/uploads/image-229.png 1155w, https://lycos7560.com/wp-content/uploads/image-229-300x175.png 300w, https://lycos7560.com/wp-content/uploads/image-229-768x448.png 768w" sizes="(max-width: 1155px) 100vw, 1155px" /></figure>



<div style="height:34px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-video"><video height="440" style="aspect-ratio: 1080 / 440;" width="1080" controls src="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_47_36_36.mp4"></video></figure>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">훈련이 덜되서 계속 떨어 뜨리네요 ㅠ</p>



<p class="has-medium-font-size">이미 훈련을 끝낸 애들과 비교해보겠습니다.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1501" height="698" src="https://lycos7560.com/wp-content/uploads/image-230.png" alt="" class="wp-image-2563" srcset="https://lycos7560.com/wp-content/uploads/image-230.png 1501w, https://lycos7560.com/wp-content/uploads/image-230-300x140.png 300w, https://lycos7560.com/wp-content/uploads/image-230-768x357.png 768w" sizes="(max-width: 1501px) 100vw, 1501px" /></figure>



<div style="height:74px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1253" height="823" src="https://lycos7560.com/wp-content/uploads/image-231.png" alt="" class="wp-image-2564" srcset="https://lycos7560.com/wp-content/uploads/image-231.png 1253w, https://lycos7560.com/wp-content/uploads/image-231-300x197.png 300w, https://lycos7560.com/wp-content/uploads/image-231-768x504.png 768w" sizes="(max-width: 1253px) 100vw, 1253px" /></figure>



<div style="height:69px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-video"><video height="448" style="aspect-ratio: 1080 / 448;" width="1080" controls src="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_49_41_35.mp4"></video></figure>



<div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">우리가 훈련시킨 아이만&#8230; 계속 공을 떨어뜨리네요 ㅋㅋㅋ</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<p class="has-medium-font-size">추가로 훈련 과정을 그래프로 확인할 수 있다&nbsp;</p>



<p class="has-medium-font-size"><a href="https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Getting-Started.md" target="_blank" rel="noreferrer noopener">https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Getting-Started.md</a></p>



<figure class="wp-block-image size-full"><img decoding="async" width="1469" height="293" src="https://lycos7560.com/wp-content/uploads/image-232.png" alt="" class="wp-image-2566" srcset="https://lycos7560.com/wp-content/uploads/image-232.png 1469w, https://lycos7560.com/wp-content/uploads/image-232-300x60.png 300w, https://lycos7560.com/wp-content/uploads/image-232-768x153.png 768w" sizes="(max-width: 1469px) 100vw, 1469px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1094" height="884" src="https://lycos7560.com/wp-content/uploads/image-233.png" alt="" class="wp-image-2567" srcset="https://lycos7560.com/wp-content/uploads/image-233.png 1094w, https://lycos7560.com/wp-content/uploads/image-233-300x242.png 300w, https://lycos7560.com/wp-content/uploads/image-233-768x621.png 768w" sizes="(max-width: 1094px) 100vw, 1094px" /></figure>



<div style="height:70px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">CMD 창에서&nbsp;</p>



<p class="has-medium-font-size">&nbsp; &nbsp;&#8230;.. \ml-agents-main\ml-agents-main\config\ppo&nbsp; 위치로 들어가서</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">tensorboard --logdir results 입력</pre>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">나오는 주소를 아무 주소창에 입력하고 이동&nbsp;</p>



<p class="has-medium-font-size">아래와 같이 방금 우리가 한 훈련에 대한 정보가 나온다.</p>



<div style="height:63px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1475" height="400" src="https://lycos7560.com/wp-content/uploads/image-234.png" alt="" class="wp-image-2568" srcset="https://lycos7560.com/wp-content/uploads/image-234.png 1475w, https://lycos7560.com/wp-content/uploads/image-234-300x81.png 300w, https://lycos7560.com/wp-content/uploads/image-234-768x208.png 768w" sizes="(max-width: 1475px) 100vw, 1475px" /></figure>



<div style="height:59px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1737" height="1028" src="https://lycos7560.com/wp-content/uploads/image-235.png" alt="" class="wp-image-2569" srcset="https://lycos7560.com/wp-content/uploads/image-235.png 1737w, https://lycos7560.com/wp-content/uploads/image-235-300x178.png 300w, https://lycos7560.com/wp-content/uploads/image-235-768x455.png 768w, https://lycos7560.com/wp-content/uploads/image-235-1536x909.png 1536w" sizes="(max-width: 1737px) 100vw, 1737px" /></figure>



<div style="height:66px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">텐서보드를 사용하여 훈련에 관한 다양한 정보를 확인하는 방법인데 추후에 따로 정리할 예정</p>



<div style="height:43px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">끝</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-5698326622209671" data-ad-slot="5078714126"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p></p>
<p>The post <a href="https://lycos7560.com/unity/unity-ml-agents-2-0-install/2512/">Unity ML-Agents 2.0 설치 (ml-agents install)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/unity/unity-ml-agents-2-0-install/2512/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_43_15_634.mp4" length="1008533" type="video/mp4" />
<enclosure url="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_45_07_206.mp4" length="978553" type="video/mp4" />
<enclosure url="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_47_36_36.mp4" length="3520097" type="video/mp4" />
<enclosure url="https://lycos7560.com/wp-content/uploads/녹화_2022_11_28_19_49_41_35.mp4" length="4906038" type="video/mp4" />

			</item>
	</channel>
</rss>
