নিউরাল নেটওয়ার্ক থেকে মাইগ্রেট করা

টেনসরফ্লো ডিসিশন ফরেস্ট ( টিএফ-ডিএফ ) হল ডিসিশন ফরেস্ট ( ডিএফ ) অ্যালগরিদমের একটি সংগ্রহ যা টেনসরফ্লোতে উপলব্ধ। ডিসিশন ফরেস্টগুলি নিউরাল নেটওয়ার্কের ( এনএন ) থেকে আলাদাভাবে কাজ করে : ডিএফগুলি সাধারণত ব্যাকপ্রোপাগেশন বা মিনি-ব্যাচে প্রশিক্ষণ দেয় না। তাই, TF-DF পাইপলাইনগুলির অন্যান্য TensorFlow পাইপলাইনগুলির থেকে কিছু পার্থক্য রয়েছে৷

এই নথিটি সেই পার্থক্যগুলির একটি তালিকা এবং TF-DF ব্যবহার করার জন্য TF পাইপলাইন আপডেট করার জন্য একটি নির্দেশিকা

এই ডক শিক্ষানবিস কোলাবের সাথে পরিচিতি অনুমান করে।

ডেটাসেট এবং বৈশিষ্ট্য

বৈধতা ডেটাসেট

স্ট্যান্ডার্ড নিউরাল নেটওয়ার্ক ট্রেনিং প্যারাডাইমের বিপরীতে, TF-DF মডেলগুলির ওভারফিটিং নিরীক্ষণের জন্য বা প্রাথমিক প্রশিক্ষণ বন্ধ করার জন্য একটি বৈধতা ডেটাসেটের প্রয়োজন হয় না। আপনার যদি ইতিমধ্যেই একটি ট্রেন/বৈধকরণ/পরীক্ষা বিভাজন থাকে এবং আপনি সেই কারণগুলির মধ্যে একটির জন্য বৈধতা ব্যবহার করছেন, তাহলে আপনার TF-DF কে ট্রেন+ভ্যালিডেশনে প্রশিক্ষণ দেওয়া নিরাপদ (যদি না বৈধকরণ বিভাজনটি অন্য কিছুর জন্যও ব্যবহার করা হয়, যেমন হাইপারপ্যারামিটার টিউনিং)।

- model.fit(train_ds, validation_data=val_ds)
+ model.fit(train_ds.concatenate(val_ds))

# Or just don't create a validation dataset

যুক্তি: TF-DF ফ্রেমওয়ার্ক একাধিক অ্যালগরিদমের সমন্বয়ে গঠিত। তাদের মধ্যে কিছু একটি বৈধতা ডেটাসেট ব্যবহার করে না (যেমন র্যান্ডম ফরেস্ট) আবার কেউ কেউ করে (যেমন গ্রেডিয়েন্ট বুস্টেড ট্রিস)। অ্যালগরিদম যেগুলি বিভিন্ন প্রকার এবং বৈধতা ডেটাসেটের আকার থেকে উপকৃত হতে পারে৷ অতএব, যদি একটি বৈধতা ডেটাসেট প্রয়োজন হয়, এটি প্রশিক্ষণ ডেটাসেট থেকে স্বয়ংক্রিয়ভাবে বের করা হবে।

ডেটাসেট I/O

ঠিক 1 যুগের জন্য ট্রেন

# Number of epochs in Keras
- model.fit(train_ds, num_epochs=5)

# Number of epochs in the dataset
- train_ds = train_ds.repeat(5)
- model.fit(train_ds)
+ model.fit(train_ds)

যুক্তি: SGD এর প্রকৃতির কারণে নিউরাল নেটওয়ার্কের ব্যবহারকারীরা প্রায়শই N ধাপগুলির জন্য একটি মডেলকে প্রশিক্ষণ দেয় (যাতে ডেটাসেট > 1 বার লুপ করা থাকতে পারে)। TF-DF পুরো ডেটাসেট পড়ে ট্রেনিং করে এবং শেষে ট্রেনিং চালায়। সম্পূর্ণ ডেটাসেট পড়ার জন্য 1 যুগের প্রয়োজন, এবং যেকোন অতিরিক্ত পদক্ষেপের ফলে অপ্রয়োজনীয় ডেটা I/O, সেইসাথে ধীর প্রশিক্ষণ হবে।

ডেটাসেট এলোমেলো করবেন না

ডেটাসেটগুলিকে এলোমেলো করার দরকার নেই (যদি না input_fn শুধুমাত্র ডেটাসেটের একটি নমুনা পড়ছে)।

- train_ds = train_ds.shuffle(5)
- model.fit(train_ds)
+ model.fit(train_ds)

যুক্তি: TF-DF মেমরিতে সম্পূর্ণ ডেটাসেট পড়ার পরে অভ্যন্তরীণভাবে ডেটা অ্যাক্সেস করে। TF-DF অ্যালগরিদমগুলি নির্ধারক (যদি ব্যবহারকারী এলোমেলো বীজ পরিবর্তন না করে)। শাফলিং সক্ষম করা শুধুমাত্র অ্যালগরিদমকে অ-নির্ধারক করে তুলবে৷ যদি ইনপুট ডেটাসেট অর্ডার করা হয় এবং ইনপুট_এফএন শুধুমাত্র এটির একটি নমুনা পড়তে যাচ্ছে (নমুনাটি এলোমেলো হওয়া উচিত) তাহলে এলোমেলো করার মানে হয়। যাইহোক, এটি প্রশিক্ষণ পদ্ধতিকে অ-নির্ধারক করে তুলবে।

ব্যাচ সাইজ টিউন করবেন না

ব্যাচের আকার মডেলের গুণমানকে প্রভাবিত করবে না

- train_ds = train_ds.batch(hyper_parameter_batch_size())
- model.fit(train_ds)
# The batch size does not matter.
+ train_ds = train_ds.batch(64)
+ model.fit(train_ds)

যুক্তি: যেহেতু TF-DF সর্বদা এটি পড়ার পরে সম্পূর্ণ ডেটাসেটে প্রশিক্ষণপ্রাপ্ত হয়, তাই মডেলের গুণমান ব্যাচের আকারের উপর ভিত্তি করে পরিবর্তিত হবে না (SGD-এর মতো মিনি-ব্যাচ প্রশিক্ষণ অ্যালগরিদমের বিপরীতে যেখানে শেখার হারের মতো পরামিতিগুলিকে যৌথভাবে টিউন করতে হবে)। এইভাবে এটি hyperparameter sweeps থেকে সরানো উচিত. ব্যাচের আকার শুধুমাত্র ডেটাসেট I/O-এর গতিতে প্রভাব ফেলবে।

বড় ডেটাসেট

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

ডেটাসেটের আকার বাড়ানোর জন্য ক্রমহ্রাসমান রিটার্ন রয়েছে এবং DF অ্যালগরিদমগুলিকে তর্কযোগ্যভাবে বড় NN মডেলের তুলনায় কম উদাহরণের প্রয়োজন হয়৷ প্রশিক্ষণের ধাপের সংখ্যা স্কেল করার পরিবর্তে (একটি NN হিসাবে), আপনি কম্পিউট ট্রেডঅফের অর্থ কোথায় তা দেখতে ডেটার পরিমাণ স্কেলিং করার চেষ্টা করতে পারেন। অতএব, প্রথমে ডেটাসেটের একটি (ছোট) উপসেটে প্রশিক্ষণের চেষ্টা করা ভাল ধারণা।

বিকল্প সমাধান হল বিতরণ করা প্রশিক্ষণ ব্যবহার করা। একাধিক মেশিন উপলব্ধ থাকলে ডেটাসেটের আকার বাড়ানোর জন্য বিতরণ করা প্রশিক্ষণ একটি দুর্দান্ত উপায়। যদিও সমস্ত বিতরণ করা অ্যালগরিদম গণনা বিতরণের জন্য উপলব্ধ, তবে তাদের সকলেই RAM ব্যবহার বিতরণ করতে সক্ষম নয়। আরো বিস্তারিত জানার জন্য ডকুমেন্টেশন চেক করুন.

কত উদাহরণ ব্যবহার করতে হবে

মডেলটি যে মেশিনে প্রশিক্ষণ দিচ্ছে তার মেমরিতে এটি ফিট করা উচিত :

  • মনে রাখবেন যে এটি ডিস্কের উদাহরণগুলির আকারের মতো নয়।

  • একটি নিয়মানুযায়ী একটি সংখ্যাসূচক বা শ্রেণীগত মান 4 বাইট মেমরি ব্যবহার করে। সুতরাং, 100টি বৈশিষ্ট্য এবং 25 মিলিয়ন উদাহরণ সহ একটি ডেটাসেট ~10GB (= 100 * 25 * 10^6 * 4 বাইট) মেমরি নেবে।

  • শ্রেণীবদ্ধ-সেট বৈশিষ্ট্যগুলি (যেমন টোকেনাইজড টেক্সট) আরও মেমরি নেয় (টোকেন প্রতি 4 বাইট + বৈশিষ্ট্য প্রতি 12 বাইট)।

আপনার প্রশিক্ষণ সময় বাজেট বিবেচনা করুন

  • যদিও সাধারণত ছোট ডেটাসেটের জন্য NN-এর চেয়ে দ্রুততর (যেমন <100k উদাহরণ), DF প্রশিক্ষণ অ্যালগরিদমগুলি ডেটাসেটের আকারের সাথে রৈখিকভাবে স্কেল করে না; বরং, ~O(বৈশিষ্ট্য x num_examples x log(num_examples)) বেশিরভাগ ক্ষেত্রে।

  • প্রশিক্ষণের সময় হাইপার-প্যারামিটারের উপর নির্ভর করে। সবচেয়ে প্রভাবশালী পরামিতিগুলি হল: (1) গাছের সংখ্যা ( num_trees ), (2) উদাহরণ স্যাম্পলিং রেট ( GBT-এর subsample ), এবং (3) অ্যাট্রিবিউট স্যাম্পলিং রেট ( num_candidate_attributes_ratio )

  • শ্রেণীবদ্ধ-সেট বৈশিষ্ট্যগুলি অন্যান্য বৈশিষ্ট্যগুলির তুলনায় বেশি ব্যয়বহুল। খরচ categorical_set_split_greedy_sampling প্যারামিটার দ্বারা নিয়ন্ত্রিত হয়।

  • স্পার্স তির্যক বৈশিষ্ট্য (ডিফল্টরূপে অক্ষম) ভাল ফলাফল দেয় কিন্তু গণনা করা ব্যয়বহুল।

ডেটা স্কেলিং আপ করার জন্য থাম্বের নিয়ম

আমরা ডেটার একটি ছোট স্লাইস (<10k উদাহরণ) দিয়ে শুরু করার পরামর্শ দিই, যা আপনাকে বেশিরভাগ ক্ষেত্রে সেকেন্ড বা কয়েক মিনিটের মধ্যে একটি TF-DF মডেলকে প্রশিক্ষণ দেওয়ার অনুমতি দেবে। তারপরে আপনি একটি নির্দিষ্ট হারে ডেটা বাড়াতে পারেন (যেমন প্রতিবার 40% বেশি), যখন বৈধকরণ সেটের কার্যকারিতা উন্নত হয় না বা ডেটাসেট আর মেমরিতে ফিট হয় না তখন বন্ধ করে।

বৈশিষ্ট্য স্বাভাবিকীকরণ / প্রিপ্রসেসিং

বৈশিষ্ট্য কলাম দিয়ে ডেটা রূপান্তর করবেন না

TF-DF মডেলগুলিতে স্পষ্টভাবে বৈশিষ্ট্যের শব্দার্থ এবং রূপান্তর প্রদানের প্রয়োজন হয় না। ডিফল্টরূপে, ডেটাসেটের সমস্ত বৈশিষ্ট্য (লেবেল ব্যতীত) মডেল দ্বারা সনাক্ত এবং ব্যবহার করা হবে। বৈশিষ্ট্যের শব্দার্থ স্বয়ংক্রিয়ভাবে সনাক্ত করা হবে, এবং প্রয়োজনে ম্যানুয়ালি ওভাররাইড করা যেতে পারে।

# Estimator code
- feature_columns = [
-   tf.feature_column.numeric_column(feature_1),
-   tf.feature_column.categorical_column_with_vocabulary_list(feature_2, ['First', 'Second', 'Third'])
-   ]
- model = tf.estimator.LinearClassifier(feature_columns=feature_columnes)
# Use all the available features. Detect the type automatically.
+ model = tfdf.keras.GradientBoostedTreesModel()

আপনি ইনপুট বৈশিষ্ট্যগুলির একটি উপসেটও নির্দিষ্ট করতে পারেন:

+ features = [
+   tfdf.keras.FeatureUsage(name="feature_1"),
+   tfdf.keras.FeatureUsage(name="feature_2")
+   ]
+ model = tfdf.keras.GradientBoostedTreesModel(features=features, exclude_non_specified_features=True)

প্রয়োজন হলে, আপনি একটি বৈশিষ্ট্য শব্দার্থিক জোর করতে পারেন.

+ forced_features = [
+   tfdf.keras.FeatureUsage(name="feature_1", semantic=tfdf.keras.FeatureSemantic.CATEGORICAL),
+   ]
+ model = tfdf.keras.GradientBoostedTreesModel(features=features)

যৌক্তিকতা: যদিও কিছু মডেলের (যেমন নিউরাল নেটওয়ার্ক) একটি প্রমিত ইনপুট স্তর প্রয়োজন (যেমন বিভিন্ন বৈশিষ্ট্যের ধরন থেকে ম্যাপিং → এমবেডিং), TF-DF মডেলগুলি স্থানীয়ভাবে শ্রেণীগত এবং সংখ্যাসূচক বৈশিষ্ট্যগুলি ব্যবহার করতে পারে, পাশাপাশি বৈশিষ্ট্যগুলির শব্দার্থিক প্রকারগুলি স্বয়ংক্রিয়ভাবে সনাক্ত করতে পারে। তথ্যের উপর ভিত্তি করে।

বৈশিষ্ট্যগুলি প্রিপ্রসেস করবেন না

ডিসিশন ট্রি অ্যালগরিদমগুলি নিউরাল নেটওয়ার্কগুলির জন্য ব্যবহৃত কিছু ক্লাসিক্যাল বৈশিষ্ট্য প্রিপ্রসেসিং থেকে উপকৃত হয় না। নীচে, আরও কিছু সাধারণ বৈশিষ্ট্য প্রক্রিয়াকরণ কৌশলগুলি স্পষ্টভাবে তালিকাভুক্ত করা হয়েছে, তবে একটি নিরাপদ সূচনা বিন্দু হল সমস্ত প্রাক-প্রক্রিয়াকরণকে সরিয়ে দেওয়া যা নিউরাল নেটওয়ার্ক প্রশিক্ষণে সহায়তা করার জন্য ডিজাইন করা হয়েছিল।

সংখ্যাসূচক বৈশিষ্ট্য স্বাভাবিক করবেন না

- def zscore(value):
-   return (value-mean) / sd

- feature_columns = [tf.feature_column.numeric_column("feature_1",normalizer_fn=zscore)]

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

শ্রেণীবদ্ধ বৈশিষ্ট্যগুলি এনকোড করবেন না (যেমন হ্যাশিং, ওয়ান-হট, বা এম্বেডিং)

- integerized_column = tf.feature_column.categorical_column_with_hash_bucket("feature_1",hash_bucket_size=100)
- feature_columns = [tf.feature_column.indicator_column(integerized_column)]
- integerized_column = tf.feature_column.categorical_column_with_vocabulary_list('feature_1', ['bob', 'george', 'wanda'])
- feature_columns = [tf.feature_column.indicator_column(integerized_column)]

যুক্তি: TF-DF-এর শ্রেণীগত বৈশিষ্ট্যগুলির জন্য স্থানীয় সমর্থন রয়েছে এবং এটি একটি "রূপান্তরিত" শব্দভান্ডার আইটেমকে তার অভ্যন্তরীণ শব্দভান্ডারের অন্য একটি আইটেম হিসাবে বিবেচনা করবে (যা মডেল হাইপারপ্যারামিটারের মাধ্যমে কনফিগার করা যেতে পারে)। কিছু রূপান্তর (যেমন হ্যাশিং) ক্ষতিকারক হতে পারে। এম্বেডিংগুলিকে প্রাক-প্রশিক্ষিত না করা পর্যন্ত সমর্থন করা হয় না, যেহেতু ডিসিশন ফরেস্ট মডেলগুলি আলাদা করা যায় না ( মধ্যবর্তী কোলাব দেখুন)। মনে রাখবেন যে ডোমেন-নির্দিষ্ট শব্দভান্ডার কৌশলগুলি (যেমন স্টপওয়ার্ড অপসারণ, পাঠ্য স্বাভাবিককরণ) এখনও সহায়ক হতে পারে।

পাঠ্য বৈশিষ্ট্যগুলি কীভাবে পরিচালনা করবেন

TF-DF নেটিভভাবে শ্রেণীবদ্ধ-সেট বৈশিষ্ট্য সমর্থন করে। অতএব, টোকেনাইজড এন-গ্রামের ব্যাগগুলি স্থানীয়ভাবে খাওয়া যেতে পারে।

বিকল্পভাবে, একটি প্রাক-প্রশিক্ষিত এম্বেডিংয়ের মাধ্যমেও পাঠ্য ব্যবহার করা যেতে পারে।

ক্যাটাগরিকাল-সেটগুলি ছোট ডেটাসেটের নমুনা দক্ষ, কিন্তু বড় ডেটাসেটের প্রশিক্ষণের জন্য ব্যয়বহুল। ক্যাটাগরিকাল-সেট এবং একটি প্রাক-প্রশিক্ষিত এম্বেডিং একত্রিত করা প্রায়শই একা ব্যবহার করার চেয়ে ভাল ফলাফল দিতে পারে।

যাদু মান দ্বারা অনুপস্থিত বৈশিষ্ট্য প্রতিস্থাপন করবেন না

যুক্তি: অনুপস্থিত মানগুলির জন্য TF-DF-এর স্থানীয় সমর্থন রয়েছে। নিউরাল নেটওয়ার্কের বিপরীতে, যা ইনপুটে NaN থাকলে গ্রেডিয়েন্টে NaN প্রচার করতে পারে, যদি অ্যালগরিদম অনুপস্থিত এবং একটি সেন্টিনেল মানের মধ্যে পার্থক্য দেখে তবে TF-DF সর্বোত্তমভাবে প্রশিক্ষণ দেবে।

- feature_columns = [
- tf.feature_column.numeric_column("feature_1", default_value=0),
- tf.feature_column.numeric_column("feature_1_is_missing"),
- ]

ছবি এবং সময় সিরিজ হ্যান্ডলিং

ডিসিশন ফরেস্টে ইমেজ বা টাইম সিরিজ ফিচার ব্যবহার করার জন্য কোনো স্ট্যান্ডার্ড অ্যালগরিদম নেই, তাই সেগুলি ব্যবহার করার জন্য কিছু অতিরিক্ত কাজ করতে হবে।

যুক্তি: কনভোলিউশন, এলএসটিএম, মনোযোগ এবং অন্যান্য সিকোয়েন্স প্রসেসিং অ্যালগরিদম হল নিউরাল নেটওয়ার্ক নির্দিষ্ট আর্কিটেকচার।

নিম্নলিখিত কৌশলগুলি ব্যবহার করে এই বৈশিষ্ট্যগুলি পরিচালনা করা সম্ভব:

  • ফিচার ইঞ্জিনিয়ারিং

    • ছবি: র্যান্ডম ফরেস্টের সাথে ছবি ব্যবহার করা কিছু সময়ে জনপ্রিয় ছিল (যেমন

      Microsoft Kinect , কিন্তু আজ, নিউরাল নেট অত্যাধুনিক।

    • টাইম সিরিজ: [ মুভিং পরিসংখ্যান ] টাইম সিরিজ ডেটার জন্য আশ্চর্যজনকভাবে ভাল কাজ করতে পারে যার তুলনামূলকভাবে কয়েকটি উদাহরণ রয়েছে (যেমন মেডিকেল ডোমেনে গুরুত্বপূর্ণ লক্ষণ)।

    • এমবেডিং মডিউল: নিউরাল নেটওয়ার্ক এমবেডিং মডিউল সিদ্ধান্ত ফরেস্ট অ্যালগরিদমের জন্য সমৃদ্ধ বৈশিষ্ট্য প্রদান করতে পারে। ইন্টারমিডিয়েট কোলাব দেখায় কিভাবে একটি টিএফ-হাব এম্বেডিং এবং একটি টিএফ-ডিএফ মডেলকে একত্রিত করতে হয়।

প্রশিক্ষণ পাইপলাইন

হার্ডওয়্যার এক্সিলারেটর যেমন GPU, TPU ব্যবহার করবেন না

TF-DF প্রশিক্ষণ (এখনও) হার্ডওয়্যার এক্সিলারেটর সমর্থন করে না। সমস্ত প্রশিক্ষণ এবং অনুমান CPU তে করা হয় (কখনও কখনও SIMD ব্যবহার করে)।

মনে রাখবেন যে CPU-তে TF-DF অনুমান (বিশেষ করে যখন Yggdrasil C++ লাইব্রেরি ব্যবহার করে পরিবেশন করা হয়) আশ্চর্যজনকভাবে দ্রুত হতে পারে (উদাহরণ অনুযায়ী সাব-মাইক্রোসেকেন্ড প্রতি cpu কোর)।

চেকপয়েন্টিং বা মিড-ট্রেনিং হুক ব্যবহার করবেন না

TF-DF মডেল চেকপয়েন্টিং (বর্তমানে) সমর্থন করে না, যার অর্থ প্রশিক্ষণ শেষ হওয়ার আগে মডেলটি ব্যবহারযোগ্য হবে বলে আশা করা হুকগুলি মূলত অসমর্থিত। মডেলটি শুধুমাত্র তখনই পাওয়া যাবে যখন এটি অনুরোধকৃত সংখ্যক গাছকে প্রশিক্ষণ দেবে (বা তাড়াতাড়ি থামবে)।

প্রশিক্ষণের ধাপের উপর নির্ভরশীল কেরাস হুকগুলিও কাজ করবে না – TF-DF প্রশিক্ষণের প্রকৃতির কারণে, মডেলটি প্রথম যুগের শেষে ট্রেনিং করে এবং সেই যুগের পরেও স্থির থাকবে। ধাপটি শুধুমাত্র ডেটাসেট I/O-এর সাথে মিলে যায়।

মডেল ডিটারমিনিজম

TF-DF প্রশিক্ষণের অ্যালগরিদমটি নির্ধারক, অর্থাৎ একই ডেটাসেটে দুবার প্রশিক্ষণ দিলে তা একই মডেল দেবে। এটি TensorFlow এর মাধ্যমে প্রশিক্ষিত নিউরাল নেটওয়ার্ক থেকে ভিন্ন। এই নির্ধারকতা রক্ষা করার জন্য, ব্যবহারকারীদের নিশ্চিত করা উচিত যে ডেটাসেট রিডগুলিও নির্ধারক।

প্রশিক্ষণ কনফিগারেশন

ক্ষতির পরিবর্তে একটি টাস্ক (যেমন শ্রেণীবিভাগ, র‌্যাঙ্কিং) নির্দিষ্ট করুন (যেমন বাইনারি ক্রস-এনট্রপি)

- model = tf_keras.Sequential()
- model.add(Dense(64, activation=relu))
- model.add(Dense(1)) # One output for binary classification

- model.compile(loss=tf_keras.losses.BinaryCrossentropy(from_logits=True),
-               optimizer='adam',
-               metrics=['accuracy'])
# The loss is automatically determined from the task.
+ model = tfdf.keras.GradientBoostedTreesModel(task=tf_keras.Task.CLASSIFICATION)

# Optional if you want to report the accuracy.
+ model.compile(metrics=['accuracy'])

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

হাইপার-প্যারামিটার শব্দার্থগতভাবে স্থিতিশীল

সমস্ত হাইপার-প্যারামিটারের ডিফল্ট মান রয়েছে। এই মানগুলি চেষ্টা করার জন্য যুক্তিসঙ্গত প্রথম প্রার্থী। ডিফল্ট হাইপার-প্যারামিটার মানগুলি কখনই পরিবর্তন না হওয়ার গ্যারান্টি দেওয়া হয়। এই কারণে, নতুন হাইপার-প্যারামিটার বা অ্যালগরিদম উন্নতি ডিফল্টরূপে অক্ষম করা হয়।

যে ব্যবহারকারীরা সর্বশেষ অ্যালগরিদম ব্যবহার করতে চান, কিন্তু যারা হাইপার-প্যারামিটারগুলিকে অপ্টিমাইজ করতে চান না তারা TF-DF দ্বারা প্রদত্ত "হাইপার-প্যারামিটার টেমপ্লেটগুলি" ব্যবহার করতে পারেন৷ প্যাকেজের আপডেট সহ নতুন হাইপারপ্যারামিটার টেমপ্লেট প্রকাশ করা হবে।

# Model with default hyper-parameters.
model = tfdf.keras.GradientBoostedTreesModel()

# List the hyper-parameters (with default value) and hyper-parameters templates of the GBT learning algorithm (in colab)
?tfdf.keras.GradientBoostedTreesModel

# Use a hyper-parameter template.
model = tfdf.keras.GradientBoostedTreesModel(hp_template="winner_1")

# Change one of the hyper-parameters.
model = tfdf.keras.GradientBoostedTreesModel(num_trees=500)

# List all the learning algorithms available
tfdf.keras.get_all_models()

মডেল ডিবাগিং

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

সহজ মডেল সারসংক্ষেপ

# Text description of the model, training logs, feature importances, etc.
model.summary()

প্রশিক্ষণ লগ এবং টেনসরবোর্ড

# List of metrics
logs = model.make_inspector().training_logs()
print(logs)

অথবা TensorBoard ব্যবহার করে:

% load_ext
tensorboard
model.make_inspector().export_to_tensorboard("/tmp/tensorboard_logs")
% tensorboard - -logdir
"/tmp/tensorboard_logs"

বৈশিষ্ট্যের গুরুত্ব

model.make_inspector().variable_importances()

গাছ প্লট করা

tfdf.model_plotter.plot_model_in_colab(model, tree_idx=0)

গাছের কাঠামো অ্যাক্সেস করুন

tree = model.make_inspector().extract_tree(tree_idx=0)
print(tree)

( উন্নত কোল্যাব দেখুন)

TensorFlow বিতরণ কৌশল ব্যবহার করবেন না

TF-DF এখনও TF বিতরণ কৌশল সমর্থন করে না। মাল্টি-কর্মী সেটআপ উপেক্ষা করা হবে, এবং প্রশিক্ষণ শুধুমাত্র ব্যবস্থাপকের উপর ঘটবে।

- with tf.distribute.MirroredStrategy():
-    model = ...
+ model = ....

স্ট্যাকিং মডেল

TF-DF মডেলগুলি গ্রেডিয়েন্টগুলিকে ব্যাকপ্রপাগেট করে না। ফলস্বরূপ, তারা NN মডেলের সাথে রচনা করা যাবে না যদি না NNগুলি ইতিমধ্যেই প্রশিক্ষিত হয়।

tf.estimator.BoostedTrees {Classifier/Regressor/Estimator} থেকে স্থানান্তরিত হচ্ছে

একই রকম শোনালেও, TF-DF এবং এস্টিমেটর বুস্টেড ট্রি আলাদা অ্যালগরিদম। TF-DF ক্লাসিক্যাল র্যান্ডম ফরেস্ট এবং গ্রেডিয়েন্ট বুস্টেড মেশিন (বৃক্ষ ব্যবহার করে) কাগজপত্র প্রয়োগ করে। tf.estimator.BoostedTreeesEstimator হল একটি আনুমানিক গ্রেডিয়েন্ট বুস্টেড ট্রিস অ্যালগরিদম যা এই কাগজে বর্ণিত একটি মিনি-ব্যাচ প্রশিক্ষণ পদ্ধতি সহ

কিছু হাইপার-প্যারামিটারের একই রকম শব্দার্থ আছে (যেমন num_trees), কিন্তু সেগুলোর গুণমান ভিন্ন। আপনি যদি আপনার tf.estimator.BoostedTreeesEstimator-এ হাইপারপ্যারামিটারগুলি টিউন করেন, তাহলে সর্বোত্তম ফলাফল পেতে আপনাকে TF-DF-এর মধ্যে আপনার হাইপারপ্যারামিটারগুলি পুনরায় টিউন করতে হবে৷

Yggdrasil ব্যবহারকারীদের জন্য

Yggdrasil ডিসিশন ফরেস্ট হল টিএফ-ডিএফ দ্বারা ব্যবহৃত মূল প্রশিক্ষণ এবং অনুমান গ্রন্থাগার। প্রশিক্ষণ কনফিগারেশন এবং মডেলগুলি ক্রস-সামঞ্জস্যপূর্ণ (যেমন TF-DF এর সাথে প্রশিক্ষিত মডেলগুলি Yggdrasil অনুমানের সাথে ব্যবহার করা যেতে পারে)।

যাইহোক, কিছু Yggdrasil অ্যালগরিদম TF-DF-তে (এখনও) উপলব্ধ নয়।

  • শার্ড স্যাম্পলিং সহ গ্রেডিয়েন্ট বুস্টেড ট্রি।