বিপরীত-মোড স্বয়ংক্রিয় পার্থক্যের ধাপে ধাপে উদাহরণ


27

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

সংক্ষেপে, আমি বিপরীত-মোড স্বয়ংক্রিয় পার্থক্যের একটি ধাপে ধাপে উদাহরণ খুঁজছি । বিষয়টিতে এতটা সাহিত্য নেই এবং বিদ্যমান বাস্তবায়ন ( টেনসরফ্লোর মতো ) এর পেছনের তত্ত্বটি না জেনে বোঝা শক্ত। এইভাবে আমি খুব কৃতজ্ঞ থাকি যদি কেউ যদি আমরা কীভাবে পাস করি , কীভাবে এটি প্রসেস করি এবং আমরা গণনামূলক গ্রাফ থেকে কী নিয়ে যাই তা বিশদভাবে দেখাতে পারি ।

বেশ কয়েকটি প্রশ্ন যা নিয়ে আমার সবচেয়ে বেশি সমস্যা হয়:

  • বীজ - কেন আমাদের এগুলি আদৌ দরকার?
  • বিপরীতমুখী বিধি বিধিগুলি - আমি জানি কীভাবে সামনের দিকে আলাদা করতে হয় তবে আমরা কীভাবে পিছিয়ে যাব? থেকে উদাহরণে যেমন এই বিভাগে , কিভাবে আমরা তা জানা আছে ?w2¯=w3¯w1
  • আমরা কি কেবল প্রতীক নিয়ে কাজ করি বা প্রকৃত মূল্যবোধের মধ্য দিয়ে যাই ? মধ্যে যেমন দৃষ্টান্ত অনুসরণ হয় এবং প্রতীক বা মান?wiwi¯

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

উত্তর:


37

যাক আসুন আমরা অভিব্যক্তি আছে ও ডেরিভেটিভস খুঁজতে চান এবং । রিভার্স-মোড এডি এই টাস্কটিকে 2 ভাগে বিভক্ত করে, যেমন, ফরওয়ার্ড এবং বিপরীত পাস।z=x1x2+sin(x1)dzdx1dzdx2

ফরোয়ার্ড পাস

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

W1=এক্স1
W2=এক্স2
W3=W1W2
W4=পাপ(W1)
W5=W3+ +W4
z- র=W5

এই উপস্থাপনার সুবিধাটি হ'ল প্রতিটি পৃথক প্রকাশের জন্য পৃথকীকরণের বিধিগুলি ইতিমধ্যে জানা গেছে। উদাহরণস্বরূপ, আমরা জানি যে ডেরিভেটিভ হয় , এবং তাই । আমরা এই সত্যটি নীচে বিপরীত পাস ব্যবহার করব।পাপকোসাইন্W4W1=কোসাইন্(W1)

মূলত, ফরওয়ার্ড পাস এগুলির প্রতিটি অভিব্যক্তি মূল্যায়ন এবং ফলাফলগুলি সংরক্ষণ করে। বলুন, আমাদের ইনপুটগুলি হল: এবং । তারপর আমাদের আছে:এক্স1=2এক্স2=3

W1=এক্স1=2
W2=এক্স2=3
W3=W1W2=6
W4=পাপ(W1) =0.9
W5=W3+ +W4=6.9
z- র=W5=6.9

বিপরীত পাস

এটি ছিল যাদুটি শুরু হয়েছিল এবং এটি শুরু হয় চেইন বিধি দিয়ে । তার মূল ফর্ম, চেইন নিয়ম বলে যে, যদি আপনি পরিবর্তনশীল আছে যার উপর নির্ভর করে যা, তার ঘুরে, উপর নির্ভর করে , তারপর:টি(তোমার দর্শন লগ করা(বনাম))তোমার দর্শন লগ করাবনাম

টিবনাম=টিতোমার দর্শন লগ করাতোমার দর্শন লগ করাবনাম

বা, যদি উপর নির্ভর করে বিভিন্ন পাথ / ভেরিয়েবল মাধ্যমে , যেমন:টিবনামতোমার দর্শন লগ করাআমি

তোমার দর্শন লগ করা1=(বনাম)
তোমার দর্শন লগ করা2=(বনাম)
টি=(তোমার দর্শন লগ করা1,তোমার দর্শন লগ করা2)

তারপরে ( এখানে প্রমাণ দেখুন ):

টিবনাম=Σআমিটিতোমার দর্শন লগ করাআমিতোমার দর্শন লগ করাআমিবনাম

অভিব্যক্তি গ্রাফ নিরিখে, আমরা যদি একটি চূড়ান্ত নোড আছে এবং ইনপুট নোড , এবং থেকে পথ জন্য অন্তর্বর্তী নোড মাধ্যমে যায় (অর্থাত যেখানে ), আমরা ডেরিভেটিভ জানতে পারেন হিসাবেz- রWআমিz- রWআমিWপিz- র=(Wপি)Wপি=(Wআমি)z- রWআমি

z- রWআমি=ΣপিপিএকটিRএনটিগুলি(আমি)z- রWপিWপিWআমি

অন্য কথায়, আউটপুট ভেরিয়েবল সংঘটিত যে কোনও মধ্যবর্তী বা ইনপুট ভেরিয়েবল গণনা করতে , আমাদের কেবল তার পিতামাতার ডেরিভেটিভস এবং আদিম অভিব্যক্তির ডেরিভেটিভ গণনা করার সূত্রটি জানতে হবে ।z- রWআমিWপি=(Wআমি)

বিপরীত পাস শেষে শুরু হয় (অর্থাত্ ) এবং সমস্ত নির্ভরতার পিছনে প্রচার করে। এখানে আমাদের রয়েছে ("বীজের" জন্য অভিব্যক্তি):z- রz- র

z- রz- র=1

যে "এ পরিবর্তন পড়তে হতে পারে ঠিক একই পরিবর্তন ফলাফল ", যা বেশ সুস্পষ্ট।z- রz- র

তারপরে আমরা জানি যে এবং তাই:z- র=W5

z- রW5=1

W5 রৈখিকভাবে এবং উপর নির্ভর করে , তাই এবং । আমরা দেখতে পাই চেইন রুল ব্যবহার করে:W3W4W5W3=1W5W4=1

z- রW3=z- রW5W5W3=1×1=1
z- রW4=z- রW5W5W4=1×1=1

সংজ্ঞা থেকে এবং আংশিক ডেরাইভেটিভসের নিয়মগুলি থেকে আমরা দেখতে পাই যে । এভাবে:W3=W1W2W3W2=W1

z- রW2=z- রW3W3W2=1×W1=W1

যা আমরা ইতিমধ্যে ফরওয়ার্ড পাস থেকে জানি, তা হ'ল:

z- রW2=W1=2

অবশেষে, এবং মাধ্যমে অবদান রাখে । আবারও, আংশিক ডেরিভেটিভসের নিয়মগুলি থেকে আমরা জানি যে এবং । এভাবে:W1z- রW3W4W3W1=W2W4W1=কোসাইন্(W1)

z- রW1=z- রW3W3W1+ +z- রW4W4W1=W2+ +কোসাইন্(W1)

এবং আবার, জ্ঞাত ইনপুট দেওয়া হলে, আমরা এটি গণনা করতে পারি:

z- রW1=W2+ +কোসাইন্(W1)=3+ +কোসাইন্(2) =2.58

যেহেতু এবং মাত্র alias লেখা হয় এবং , আমরা আমাদের উত্তর পাবেন:W1W2এক্স1এক্স2

z- রএক্স1=2.58
z- রএক্স2=2

এবং এটাই!


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

  1. ডেরাইভেটিভগুলি ইনপুট বা আউটপুটের তুলনায় অনেক বেশি মাত্রিক মাত্রা থাকতে পারে, যেমন ভেক্টর আর্ট ভেক্টরের ডেরিভেটিভ একটি ম্যাট্রিক্স এবং ম্যাট্রিক্স আর্ট ম্যাট্রিক্সের ডেরিভেটিভ একটি 4-মাত্রিক অ্যারে (কখনও কখনও টেনসর হিসাবে পরিচিত)। অনেক ক্ষেত্রে এ জাতীয় ডেরাইভেটিভগুলি খুব বিরল।
  2. আউটপুট অ্যারেতে প্রতিটি উপাদান হ'ল ইনপুট অ্যারে (গুলি) এর 1 বা ততোধিক উপাদানগুলির একটি স্বতন্ত্র ফাংশন। যেমন যদি এবং উভয় এবং ভেক্টর হয়, কখনো উপর নির্ভর করে , কিন্তু শুধুমাত্র এর উপসেট উপর । বিশেষ করে, এর মানে খোঁজার ব্যুৎপন্ন যে ট্র্যাকিং নিচে boils কিভাবে উপর নির্ভর করে ।Y=(এক্স)এক্সYYআমিYএক্সYআমিএক্সYআমিএক্স

স্বয়ংক্রিয় পার্থক্যের শক্তি হ'ল এটি প্রোগ্রামিং ভাষা থেকে পরিস্থিতি এবং লুপগুলির মতো জটিল কাঠামো মোকাবেলা করতে পারে। তবে, আপনার যদি প্রয়োজন সমস্ত বীজগণিতীয় এক্সপ্রেশন থাকে এবং প্রতীকী উপস্থাপনা নিয়ে কাজ করার জন্য আপনার যথেষ্ট উপযুক্ত কাঠামো থাকে তবে সম্পূর্ণ প্রতীকী অভিব্যক্তি তৈরি করা সম্ভব। প্রকৃতপক্ষে, এই উদাহরণে আমরা এক্সপ্রেশন produce এবং আমরা যা চাই ইনপুটগুলির জন্য এই ডেরাইভেটিভ গণনা করতে পারি।z- রW1=W2+ +কোসাইন্(W1)=এক্স2+ +কোসাইন্(এক্স1)


1
খুব দরকারী প্রশ্ন / উত্তর। ধন্যবাদ। কেবল একটি লিট্ট সমালোচনা: আপনি কোনও গাছের কাঠামোকে ব্যাখ্যা না করেই চলছেন বলে মনে হয় (যা আপনি যখন বাবা-মা ইত্যাদির বিষয়ে কথা শুরু করেন))
ম্যাডহ্যাটার

1
এছাড়াও কেন আমাদের বীজ দরকার তা পরিষ্কার করে আঘাত লাগবে না।
ম্যাডহ্যাটার

@ ম্যাডহ্যাটার মন্তব্যের জন্য ধন্যবাদ। আমি গ্রাফের কাঠামোর উপর জোর দেওয়ার জন্য কয়েকটি অনুচ্ছেদ (যা এই পিতামাতার প্রতি নির্দেশ করে) পুনরায় লেখার চেষ্টা করেছি। আমি লেখায় "বীজ" যুক্তও করেছি, যদিও এই নামটি নিজেই আমার মতে বিভ্রান্তিকর হতে পারে: এডি বীজ সর্বদা একটি স্থির অভিব্যক্তি - , আপনি বেছে নিতে বা উত্পন্ন করতে পারেন এমন কিছু নয়। z- রz- র=1
বন্ধু 21

ধন্যবাদ! আমি লক্ষ্য করেছি যে যখন আপনাকে একাধিক "বীজ" সেট করতে হবে, সাধারণত একজন 1 এবং 0 পছন্দ করেন I'd আমি কেন তা জানতে চাই। আমি বোঝাতে চাইছি যে কেউ একটি ডিফারেন্সিয়াল আর্টের "ভাগফল" গ্রহণ করে, তাই "1" কমপক্ষে স্বজ্ঞাতভাবে ন্যায়সঙ্গত হয় .. তবে 0 এর কি? এবং যদি কেউ 2 টিরও বেশি বীজ বাছতে হয়?
ম্যাডহ্যাটার

1
আমি যতদূর বুঝতে পেরেছি, একাধিক বীজ কেবলমাত্র ফরওয়ার্ড-মোড AD তে ব্যবহৃত হয়। এক্ষেত্রে আপনি ইনপুট ভেরিয়েবলের জন্য বীজকে 1 এ সেট করেছেন যা আপনি সম্মানের সাথে আলাদা করতে চান এবং অন্যান্য সমস্ত ইনপুট ভেরিয়েবলের জন্য বীজ 0 তে সেট করতে চান যাতে তারা আউটপুট মানটিতে অবদান না দেয়। বিপরীত মোডে আপনি বীজটিকে একটি আউটপুট ভেরিয়েবলে সেট করে থাকেন এবং আপনার কাছে কেবলমাত্র একটি আউটপুট পরিবর্তনশীল থাকে। আমার ধারণা, আপনি বেশ কয়েকটি আউটপুট ভেরিয়েবলের সাথে রিভার্স-মোড এডি পাইপলাইন তৈরি করতে পারেন এবং ফরোয়ার্ড মোডের মতো একই প্রভাব পেতে একটিতে 0 বাদে সমস্ত সেট করতে পারেন, তবে আমি কখনও এই বিকল্পটি তদন্ত করিনি।
ফ্রেন্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.