ক্ষতিকারক ক্ষয় সহ অ্যাডাম অপ্টিমাইজার


53

বেশিরভাগ টেনসরফ্লো কোডে আমি দেখেছি অ্যাডাম অপ্টিমাইজারটি ধ্রুবক শেখার হারের 1e-4(অর্থাৎ 0.0001) ব্যবহার করে। কোডটি সাধারণত নিম্নলিখিতটি দেখায়:

...build the model...
# Add the optimizer
train_op = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
# Add the ops to initialize variables.  These will include 
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()

# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
  sess.run(train_op)

আমি ভাবছি, অ্যাডাম অপটিমাইজার ব্যবহার করার সময় সূচকীয় ক্ষয়টি ব্যবহার করা কার্যকর কিনা, যেমন নীচের কোডটি ব্যবহার করুন:

...build the model...
# Add the optimizer
step = tf.Variable(0, trainable=False)
rate = tf.train.exponential_decay(0.15, step, 1, 0.9999)
optimizer = tf.train.AdamOptimizer(rate).minimize(cross_entropy, global_step=step)
# Add the ops to initialize variables.  These will include 
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()

# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
  sess.run(train_op)

সাধারণত, লোকেরা একরকম শেখার হার ক্ষয় ব্যবহার করে, আদমের পক্ষে এটি অস্বাভাবিক মনে হয়। এর কোন তাত্ত্বিক কারণ আছে কি? ক্ষয়ের সাথে অ্যাডাম অপটিমাইজারকে একত্রিত করা কি কার্যকর হতে পারে?


প্রতিটি পুনরাবৃত্তির সাথে আপডেট করার জন্য আপনি কীভাবে পদক্ষেপটি পরিবর্তনশীল পেতে পারেন?
পেরোহুন্টার

@ স্পেরহান্টার: এর global_stepপ্যারামিটার ব্যবহার করুন minimize। সম্পাদনা দেখুন।
চার্লস স্ট্যাটস

9
দ্রষ্টব্য: 1e-4= 0.0001, না 0.0004
ক্লিফ এবি

আমি আপনাকে "গ্লোবাল_স্টেপ = পদক্ষেপ" অর্পণ করতে দেখছি তবে "ধাপ" পরিবর্তনশীল কীভাবে আপডেট হচ্ছে তা আমি দেখতে পাই না ... আপনি কি দয়া করে পরিষ্কার করতে পারেন?
দিয়েগো

@ ডিগো: দেরী উত্তর কিন্তু: গ্লোবাল_স্টেপ পরামিতি হওয়ায় পদক্ষেপের পরিবর্তনকে কমিয়ে আনা প্রতিটি বার যখন ছোট করে বলা হয় তখন ন্যূনতম ফাংশনকে বিশ্বব্যাপী পদক্ষেপের প্যারামিটার বাড়ায়। ছোট করার জন্য ডকুমেন্টেশন দেখুন। মনে রাখবেন যে এর অর্থ মিনি ব্যাচগুলি করার সময়, প্রতিটি পর্বের জন্য নয়, প্রতিটি মিনি-ব্যাচের জন্য ধাপের পরিবর্তনশীল আপডেট করা হয়।
ডিম্পল

উত্তর:


37

বুদ্ধিমানভাবে বলতে: অবশ্যই চেষ্টা করে দেখুন, আপনি কিছু খুব দরকারী প্রশিক্ষণের হুরিস্টিকস খুঁজে পেতে পারেন, সেক্ষেত্রে শেয়ার করুন!

সাধারণত লোকেরা একধরনের ক্ষয় ব্যবহার করে, আদমের পক্ষে এটি অস্বাভাবিক মনে হয়। এর কোন তাত্ত্বিক কারণ আছে কি? ক্ষয়ের সাথে অ্যাডাম অপটিমাইজারকে একত্রিত করা কি কার্যকর হতে পারে?

আমি এড্যাম অপ্টিমাইজার ব্যবহার করে পর্যাপ্ত লোকের কোড দেখিনি এটি সত্য কিনা না তা বলার জন্য। যদি এটি সত্য হয় তবে সম্ভবত এটি এডিএএম তুলনামূলকভাবে নতুন এবং শিখার হার ক্ষয় "সেরা অনুশীলনগুলি" এখনও প্রতিষ্ঠিত হয়নি।

তবে আমি লক্ষ করতে চাই যে শিক্ষার হার ক্ষয় আসলে অ্যাডামের জন্য তাত্ত্বিক গ্যারান্টির অংশ। বিশেষ করে তাদের এর উপপাদ্য 4.1 ICLR নিবন্ধ , তাদের অনুমানের এক যে শেখার হার একটি বর্গমূল ক্ষয়, আছে । তদতিরিক্ত, তাদের লজিস্টিক রিগ্রেশন পরীক্ষার জন্য তারা বর্গমূলের ক্ষয়টিও ব্যবহার করে।αt=α/t

সোজা কথায়: আমি তত্ত্বের কিছু মনে করি না অ্যাডামের সাথে শিখার হার ক্ষয়ের নিয়ম ব্যবহার করে নিরুত্সাহিত করে। আমি দেখেছি লোকেরা অ্যাডাম ব্যবহার করে কিছু ভাল ফলাফলের প্রতিবেদন করতে এবং কিছু ভাল প্রশিক্ষণের হিউরিস্টিক্স খুঁজে পাওয়া অবিশ্বাস্যভাবে মূল্যবান হতে পারে।


12

বেশিরভাগ লোকেরা অ্যাডামের সাথে শেখার হার ক্ষয়কে ব্যবহার না করার কারণটি হ'ল আলগোরিদম নিজেই নিম্নলিখিত উপায়ে একটি শিক্ষার হার ক্ষয় করে:

t <- t + 1
lr_t <- learning_rate * sqrt(1 - beta2^t) / (1 - beta1^t)

t0প্রাথমিক টাইমস্টেপটি কোথায় এবং lr_tএটি নতুন শিক্ষার হার ব্যবহৃত হয়।


4
আমি নিশ্চিত নই যে এই ঘটনাটি কিনা। ফ্যাক্টর sqrt(1 - beta2^t) / (1 - beta1^t)ক্ষয় হয় না। এটি প্রথম এবং দ্বিতীয় মুহুর্তের প্রাক্কলনগুলির শুরুতে ক্ষতিপূরণ দেবে বলে মনে হচ্ছে।
থাইজ

25
এই উত্তরটি ভুল। টি অসীমের দিকে যাওয়ার সাথে সাথে এই ফ্যাক্টরটি 1.0 এ পৌঁছে যায়। পার্শ্ব নোট: এখানে শেখার_রেট ঠিক করা আছে । এটি টি -1 সময়ে শেখার হার নয়।
rd11

8

অ্যাডাম প্রাথমিক শিক্ষার হার বা মূল কাগজের পরিভাষা অনুযায়ী পদক্ষেপের আকার ব্যবহার করে, যখন অভিযোজিতভাবে আপডেটগুলি গণনা করে। পদক্ষেপের আকার আপডেটের জন্য একটি আনুমানিক সীমাও দেয়। এই বিষয়ে, আমি মনে করি প্রশিক্ষণের শেষের দিকে ধাপের আকার হ্রাস করা ভাল ধারণা। এটি এনআইপিএস 2017 এর সাম্প্রতিক কাজের দ্বারাও সমর্থিত: মেশিন লার্নিংয়ে অভিযোজক গ্রেডিয়েন্ট পদ্ধতির প্রান্তিক মূল্য

বিভাগ 4 এর শেষ লাইন: গভীর শিক্ষণ পরীক্ষা বলছে

যদিও প্রচলিত জ্ঞানের পরামর্শ দেয় যে অ্যাডামের সুরের প্রয়োজন নেই, আমরা দেখতে পেয়েছি যে প্রাথমিক শিক্ষার হার এবং ক্ষয়ের স্ক্রিনটি অ্যাডামের জন্য সমস্ত ক্ষেত্রে তার ডিফল্ট সেটিংসের তুলনায় উল্লেখযোগ্য উন্নতি লাভ করে।

সর্বশেষে তবে সর্বনিম্ন নয়, কাগজটি পরামর্শ দেয় যে আমরা যাইহোক এসজিডি ব্যবহার করি।


2

আমি @ ইন্ডি এআই এর মতামতের সাথে একমত, এখানে আমি আরও কিছু তথ্য সরবরাহ করি:

সিএস 231 এন থেকে :

... এই পদ্ধতিগুলির অনেকগুলিতে এখনও অন্য হাইপারপ্যারামিটার সেটিংসের প্রয়োজন হতে পারে তবে যুক্তিটি হ'ল কাঁচা শেখার হারের চেয়ে হাইপারপ্যারামিটার মানগুলির বিস্তৃত পরিসরের জন্য তারা ভাল আচরণ করে। ...

এবং কম্পিউটার ভিশন বিভাগ 8 এর জন্য ইনসেপশন আর্কিটেকচার পেপার রিথিংকিং থেকে :

... যদিও আমাদের সেরা মডেলগুলি 0.9 এবং ε = 1.0 এর ডে-ক্যা দিয়ে আরএমএসপ্রপ [21] ব্যবহার করে অর্জিত হয়েছিল। আমরা 0.045 এর একটি শিক্ষার হার ব্যবহার করেছি, 0.94 এর ঘনিষ্ঠ হার ব্যবহার করে প্রতি দুটি পর্ব ক্ষয় হয়ে গেছে। ...


2

আমি সত্যিকারের সহজ ডেটা সহ একটি ডেটাসেট প্রশিক্ষণ দিয়েছি, যদি কোনও ব্যক্তিকে চর্বি হিসাবে বিবেচনা করা হয় বা না, উচ্চতা এবং ওজন - বিএমআই গণনা করার ডেটা তৈরি করা এবং যদি 27 বছরের বেশি হয়, তবে ব্যক্তিটি চর্বিযুক্ত। খুব সহজ বেসিক ডেটা। অ্যাডামকে অপ্টিমাইজার হিসাবে এবং 0.001-এ শিখার হার হিসাবে ব্যবহার করার সময়, নির্ভুলতাটি কেবলমাত্র 5 টি পর্বের জন্য 85% এর কাছাকাছি পাবে, 100 টিরও বেশি এপোকাস পরীক্ষা করে সর্বোচ্চ 90% এ শীর্ষে থাকবে।

তবে সম্ভবত 85% এ আবার লোড করার পরে এবং 0.0001 শেখার হারটি করার সময় যথার্থতা 3 টি পর্বের উপরে চলে যাবে 95% এবং 10 টি আরও মহাকাব্য এটি 98-99% এর কাছাকাছি। শিখার হারটি 4 অঙ্কের 0.0001 এর নীচে যেতে পারে কিনা তা নিশ্চিত নন, তবে আবার মডেলটি লোড করার সময় এবং 0.00001 ব্যবহার করার সময়, আধিকারিকটি 99.20 - 100% এর আশেপাশে ঘুরে বেড়াবে এবং এটি নীচে যাবে না। আবার, নিশ্চিত নয় যে শেখার হার 0 হিসাবে বিবেচিত হবে, তবে যাইহোক, আমি যা পেয়েছি তা ...

এই সমস্ত শ্রেণীবদ্ধ_ক্রসেন্ট্রোপি ব্যবহার করে, কিন্তু মানে_সকোয়ার 99-100% এ খুব বেশি এই পদ্ধতিটি করে। অ্যাডাডেল্টা, অ্যাডগ্র্যাড, নেস্টারভ কেবল একটি নোটের জন্য, 65% নির্ভুলতার উপরে উঠতে পারেনি।


0

অ্যাডামের শেখার হার ক্ষয় আরএসএমপ্রপের মতোই (যেমন আপনি এই উত্তরটি দেখতে পারেন ) এবং এটি বেশিরভাগ ক্ষেত্রে পূর্ববর্তী গ্রেডিয়েন্টগুলির দৈর্ঘ্যের উপর ভিত্তি করে দোলনাগুলি ফেলে দেয় । সুতরাং তাত্পর্যপূর্ণ ক্ষয় (প্রশিক্ষণের প্রক্রিয়া বর্ধমান শিক্ষার হারের জন্য) একই সময়ে গ্রহণ করা যেতে পারে। তারা সবাই শেখার হার কিন্তু ক্ষয় নানা কাজের

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.