On Wed, Dec 9, 2020 at 11:12 AM Michael Wong <fraggamuffin@gmail.com> wrote:

SG19 Machine Learning 2 hours. This session will focus on the 3rd review of Stats paper but with updates from all the others optionally. Links to paper coming.


Hi,

Michael Wong is inviting you to a scheduled Zoom meeting.

Topic: SG19 monthly Dec 2020-Feb 2021
Time: Dec 10, 2020 02:00 PM Eastern Time (US and Canada)
    Every month on the Second Thu, until Feb 11, 2021, 3 occurrence(s)
    Dec 10, 2020 02:00 PM ET 1900 UTC
    Jan 14, 2021 02:00 PM ET 1900 UTC
    Feb 11, 2021 02:00 PM ET 1900 UTC
    Please download and import the following iCalendar (.ics) files to your calendar system.
    Monthly: https://iso.zoom.us/meeting/tJctf-2tpzotGNHL5pZqwtjELee0mcG2zzCi/ics?icsToken=98tyKuCrrjMuH92UtxuCRowqAoqgLO_xmH5ajY11sEr1OTFEdgnTGudHYr98N4rK

Join from PC, Mac, Linux, iOS or Android: https://iso.zoom.us/j/93084591725?pwd=K3QxZjJlcnljaE13ZWU5cTlLNkx0Zz09
    Password: 035530

Or iPhone one-tap :
    US: +13017158592,,93084591725#  or +13126266799,,93084591725#
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 301 715 8592  or +1 312 626 6799  or +1 346 248 7799  or +1 408 638 0968  or +1 646 876 9923  or +1 669 900 6833  or +1 253 215 8782  or 877 853 5247 (Toll Free)
    Meeting ID: 930 8459 1725
    Password: 035530
    International numbers available: https://iso.zoom.us/u/agewu4X97

Or Skype for Business (Lync):
    https://iso.zoom.us/skype/93084591725

Agenda:

1. Opening and introductions

The ISO Code of conduct:
https://www.iso.org/files/live/sites/isoorg/files/store/en/PUB100397.pdf
The IEC Code of Conduct:
https://basecamp.iec.ch/download/iec-code-of-conduct-for-delegates-and-experts/

ISO patent policy.
https://isotc.iso.org/livelink/livelink/fetch/2000/2122/3770791/Common_Policy.htm?nodeid=6344764&vernum=-2 

 
The WG21 Practices and Procedures and Code of Conduct:
https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures

1.1 Roll call of participants

Antony Peacock
Joe Sachs
Ozan Irsoy
Phil Ratzloff
Richard Dosselmann
Michael Chiu
Will Wray
William Moses
Scott McMillan
Larry Lewis
Michael Wong
Kens Maurer
Andrew Lumsdaine
Vissil Vassilev
Cyril Khazan

 

1.2 Adopt agenda

Stats paper
combinatorics 

1.3 Approve minutes from previous meeting, and approve publishing
 previously approved minutes to ISOCPP.org

1.4 Action items from previous meetings

2. Main issues (125 min)

2.1 General logistics

Meeting plan, focus on one paper per meeting but does not preclude other
paper updates:

     Dec 10, 2020 02:00 PM ET1900 UTC Stats

    Jan 14, 2021 02:00 PM ET 1900 UTCReinforcement Learning and Diff Calculus
    Feb 11, 2021 02:00 PM  1900 UTC ET Graph 

ISO meeting status

future C++ Std meetings

2.2 Paper reviews

2.2.1: ML topics

2.2.1.1 Stats review Richard Dosselman et al

P1708R3: Math proposal for Machine Learning:  3rd review

make it a D paper
updated in Sept
SaS mentioned member deviations
 everything in 4.1 are free standing functions
and also most in 4.2 as accumulator design to be done in a 1 pass
5 has discussion and issues

1. all very big in machine learning, competitive with python and sypy
3.1 simple arithmetic mean here, added geometric and harmonic, python did not have weighted versions
3.2 Quantile is asked by Jolanta, in addition to mode using nth largest element
3.3 mode is still there
3.4 skewness are also there and only in numpy extended library and not in python showing how lopsided we are
3.4 kurtosis 
3.6 Variance
3.7 Std dev
added walter Brown and Jolanta's concerned items
4. Walter ask that we use same style as <random> so it gets its own header
4.1 using ranges and Eric Niebler's proposal to have less processing on user side, and more things automated
not too many concepts, just enough to protect everything
if you are doing the mode, then we want to able to support text
weighted version can support arithmetic type

4.1.1 Mean 
using projections of a range
Also use auto as a return type per Walter Brown
4.1.1 if you are already using a floating value for range, that is automatically your return type, per Jolanta suggestion
projections on the actual values
overloaded versions are still there per Michael

function declaration is close to what std spec synopsis
but what is auto doing here instead of result type, need Walter to answer,
auto without -> at the end meand implementation determines the return type, unless you show the implementation inline, which is not recommended
the only non-deducible parameter is the result, then the most natural thing is to do geometric mean of double because everything else is deduced
also had a discussion on the parameter order - yes need that order for result of template argument and iresult depends on R and P
do you anticipate someone override the result template parameter for intermediate accumulation as an intended use case? Yes , 
result is the intermediate thing
Ask this as a direct question for Walter and Jens, likely he meant there should be auto with an arrow on the right end

is there an explicit desire for handling for a custom type for a big float? Why, if not then why have an accumulator type  ...? Yes this ties in with Jens why not return the big integer and return the big float on the outside
might want everything in geometric mean to have a rational type as a result of doing a division? May be over the top but I can see it
current support for non builtin because result needs to be nonarithmetic type, can you do square root, logs, signed division, this proposal shoudl not be bogged down - just be explicit that this does not support user defined type
not worry about complex

4.1.1
Harmonic
projection compiles ok
4.1.2
quantile
 compute in one pass 
using std:: stats::stats_range  should be stats::range

example us structure binding and return 2 values 

can you pass initializer list instead of q? yes, may be show an example of it as it is a constant

which template parameter to deduce and which to override; so eecution policy, r, C1, P1, can be deduced , but Key, Hash, KeyEqual can be 
overridden
dont want to give all the over parameters when I just want to customize my hash function, so may be better to just ask for a hash table type
 
4.2 accumulator object based on boost
allows one list, one pass over the list, computing 3 means in one pass

almost all of these can be specific instantiation of generic deduction ? We discussed this last year, that everything is not far from std:;accumulate/reduce as all a mean is accumulate, so stats people dont understand the details and they prefer a wrapper

a way to minimize rounding error, are the mechanism to specify ways to minimize it? pass a different type for the temporary accumulator else no way to sort the value by magnitude before adding them - you are also accumulating the error term, kahan summation ?OK perfect

if goal is to make it easy for non-expert and allow them to choose  other matters ? yes may be its time to address that
we dont have a concept in C++ for arithmetic type, so if we do something like Kahan SummationHN? it would be hard so document and dont do it

4.4 mode
C and P are less important then others, except classes may be we want deduction guides later
accumulating object is unique to us
destructor should be constexpr
constexpr on constructor may not be correct as it allocates memory if we are building a hash table which I am not sure is made constexpr
so reconsider the constexpr here

use common name for all the mean_ variants
for auto can be a range based for loop


5.4 added trimmed mean from jolanta


Internalize customization

Move that we send this paper to LEWG modulo changes from this discussion
6/0/0/0/0
Aim for Jan 15


ship vehicle will be the IS and not a TR because this is independent
Have an implementation 


PXXXX: combinatorics: 1st Review

> std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2
> above is the stats paper that was reviewed in Prague
http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19
>
> Review Jolanta Polish feedback.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html

Unit library cppcon 2020:

 https://www.youtube.com/watch?v=aN6-Kz0HqRw&feature=emb_logo

2.2.1.2 Reinforcement Learning Larry Lewis Jorge Silva

Reinforcement Learning proposal:

move to Feb
is there a paper on NN
mdarray using storage could work

 

2.2.1.3 Graph Proposal Phil Ratsloff et al

P1709R1: Graph Proposal for Machine Learning

P1709R3:
https://docs.google.com/document/d/1kLHhbSTX7j0tPeTYECQFSNx3R35Mu3xO5_dyYdRy4dM/edit?usp=sharing

https://docs.google.com/document/d/1QkfDzGyfNQKs86y053M0YHOLP6frzhTJqzg1Ug_vkkE/edit?usp=sharing

<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html>

 working on concepts for graph and reconcile the proposals

2.2.1.4: Differentiable Programming by Marco Foco

<
https://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit
>

tensorflow community 
Automatic diff as first class citizen of llvm IR : made a plugin that does AD
Vasil will give rough update of people's desires
 


2.2.3 any other proposal for reviews?

2.3 Other Papers and proposals

P1416R1: SG19 - Linear Algebra for Data Science and Machine Learning
https://docs.google.com/document/d/1IKUNiUhBgRURW-UkspK7fAAyIhfXuMxjk7xKikK4Yp8/edit#heading=h.tj9hitg7dbtr

P1415: Machine Learning Layered list
https://docs.google.com/document/d/1elNFdIXWoetbxjO1OKol_Wj8fyi4Z4hogfj5tLVSj64/edit#heading=h.tj9hitg7dbtr

2.2.2 SG14 Linear Algebra progress:
Different layers of proposal
https://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit

2.5 Future F2F meetings:

2.6 future C++ Standard meetings:
https://isocpp.org/std/meetings-and-participation/upcoming-meetings

None

3. Any other business

New reflector

http://lists.isocpp.org/mailman/listinfo.cgi/sg19

Old Reflector
https://groups.google.com/a/isocpp.org/forum/#!newtopic/sg19
<https://groups.google.com/a/isocpp.org/forum/?fromgroups=#!forum/sg14>

Code and proposal Staging area

4. Review

4.1 Review and approve resolutions and issues [e.g., changes to SG's
working draft]

4.2 Review action items (5 min)

5. Closing process

5.1 Establish next agenda

TBD

5.2 Future meeting


    Jan 14, 2021 02:00 PM ET 1900 UTCReinforcement Learning and Diff Calculus
    Feb 11, 2021 02:00 PM  1900 UTC ET Graph